Проверка авторизации пользователя и перенаправление на другую страницу
Я создаю сайт только для участников, который требует, чтобы пользователи были авторизованы для использования сайта.
Главная страница доступна публично. На главной странице я хочу добавить функцию, которая будет перенаправлять авторизованных пользователей на внутреннюю страницу сайта.
Код, который я попробовал
<?php if (is_user_logged_in() ) {
wp_redirect ('dashboard' );
exit;
}
?>
Выдает ошибку "headers already sent". Код размещен в верхней части моего php файла.
Что я делаю неправильно?

Я не уверен, упростили ли вы для примера, но убедитесь, что используете полный URL в вызове wp_redirect()
.
Также, вместо размещения этого в шаблоне, я считаю более правильным запускать это через хук template_redirect
.

Моё решение — это wp_redirect ( home_url("/dashboard") );
, и я поместил этот код на первую строку шаблона. Хотя я не знаком с хуками, так что у вас, вероятно, есть веские основания. Почему?

@javy template_redirect
семантически является местом в коде, где "WordPress уже знает, что ему нужно начать загружать и выводить, но вы можете изменить его решение". Начало шаблона — это "мы уже загружаем эту вещь". Если вам не нужно то, что находится в шаблоне, нет смысла заходить так далеко в процессе.
