victorzadorozhnyy
@victorzadorozhnyy

Почему на сервере функция is_user_logged_in() вызывает ошибку, но работает на localhost?

Пишу один плагин и странная штука с этой функцией
function checkLogged(){
if ( !is_user_logged_in() ) {
    wp_redirect(home_url('/wp-login') );
      exit;
}
}
add_action('wp_head', 'checkLogged');

Warning: Cannot modify header information - headers already sent by (output started at .../wp-includes/formatting.php:4583) in .../wp-includes/pluggable.php on line 1228

у меня была недавно такая проблема, но вопрос оказался в поврежденном (не верный формат utf) конфиг файле, сейчас не работае именно из-за этой функции. Как только удаляешь все идет.
Почему?
  • Вопрос задан
  • 331 просмотр
Решения вопроса 1
victorzadorozhnyy
@victorzadorozhnyy Автор вопроса
ну сам спросил и сам отвечу...
нужно поменять wp_head -> template_redirect
и все работает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Потому что редирект происходит благодаря отправке заголовков Location.

В вашем случае, заголовки невозможно отправить, так как уже произошел вывод какой-то информации (об этом написано в сообщении об ошибке), в файле /wp-includes/formatting.php на строке 4583. Можете посмотреть что там происходит - конфиг подключается, или какой-то файл с BOM.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы