it-swarm-ru.tech

Почему is_home () не работает правильно?

Я добавил бит if(is_home()) в файл functions.php моей темы, и он, похоже, не работает. Функция, содержащая этот бит, вызывается при инициализации, поэтому is_home уже должен работать.

3
naugtur

is_home() не будет работать, пока не будет запущен wp_query. Самым ранним хуком, который вы можете использовать там, где будет работать is_home, является 'parse_query', но 'template_redirect' будет лучше.

9
John P Bloch

Чтобы продолжить ответ Джона: добавьте вызов к указанной функции на одном из хуков, упомянутых Джоном и Хакре.

Добавьте, например, следующее в ваши functions.php:

<?php
function my_function_name(){
  if(is_home()) do_something();
}

add_action('template_redirect', 'my_function_name');
?>

Правка: я сначала неправильно понял ваш вопрос - похоже, у вас уже есть функция, инкапсулирующая код, просто вы стреляете не по адресу. Либо разбейте этот раздел на отдельную функцию и запустите его в template_redirect и т.д., Либо измените место, где вы подключаетесь.

2
ZaMoose