Поддержка Проблемы и решения Не работает is_page

  • Решено garetziro

    (@garetziro)


    Доброго времени суток,
    и сам не заметил, как у меня перестала работать функция is_page, которая должна возвращать True, если я нахожусь на «странице» и наоборот.
    Например, вызываю этот код в functions.php

    $page = is_page();
    var_dump($page);
    exit();

    при этом находясь: на главной, в магазине, в корзине и т.п. — мне возвращает false!
    Почему?
    Если идти от обратного, и, используя отрицание, то:

    $page = !is_page();
    var_dump($page);
    exit();

    Получаю True.
    Т.е. она не работает, не понимает, что задействована именно страница…
    Может были похожие ситуации?
    Я реально не понимаю — в чем дело, плагинов неизвестных не ставил, редактирую всего два файла в дочерней теме…

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Например, вызываю этот код в functions.php

    Там он выполняется слишком рано:

    It’s important to note that WordPress loads functions.php before the query is run, so if you simply include a Conditional Tag in that file, it won’t work.

    Все условные теги работают только после выполнения основного запроса — например, в привязке к действию wp или более позднему:

    
    function my_is_page_test() {
    	var_dump( is_page() );
    }
    add_action( 'wp', 'my_is_page_test' );
    

    Сергей, вы мне ОЧЕНЬ помогли. Благодарю.

Просмотр 2 ответов — с 1 по 2 (всего 2)