Intereting Posts
Искать ТОЛЬКО с помощью мета-ключа / мета-значений enqueue_style не работает Именование страниц, когда есть подкатегория только иногда. Добавление значений meta в permalink Как добавить JavaScript, который будет выполняться на всех моих сайтах в Multisite? удалять только сообщение в запросе / для каждого утверждения (передняя часть) Правильное регулярное выражение для кеша Nginx FastCGI? Изменить запрос с идентификатора cat на slug или имя? получить всех уровней родителей с одного срока Как включить редактор содержимого в качестве недоступной цели с помощью jQuery-ui? Как получить плагин Social Media, который будет отображаться в заголовке моей детской темы Twenty Eleven? Отправляйте данные редактору перед сохранением сообщения Скажите, пожалуйста, любой бесплатный плагин для дизайнера продукта (например, настроить футболку, мобильную обложку, кружку и т. Д.). Значения настраиваемых полей недоступны functions.php WordPress 3 MU для сайта разработки / стадии / производства

Используйте is_category (), is_tag (), … в functions.php

Я хочу проверить functions.php если фактическая страница – это страница категории, страница тега, … но функции для ее проверки ( is_category() , is_tag() , …), похоже, не работают, так как это состояние:

 if(is_category() || is_tag() || is_home()) 

никогда не проходите.

Например, is_category () , похоже, не нужно вызывать в цикле.

Любая идея, почему он не работает и как его решить?

Редактировать:

Полный пример для моего случая:

внутри функции.php

 /* Add hentry class to body */ if(! function_exists( 'one_function' )) { function one_function( $classes ) { $classes[] = get_classes(); //this is a custom theme function which put the classes into an array. $classes[] = 'hentry'; return $classes; } if(is_category() || is_tag() || is_home()) add_filter( 'body_class', 'one_function' ); //this is executed if removing the "if" condition } 

Solutions Collecting From Web of "Используйте is_category (), is_tag (), … в functions.php"

Ваша проблема заключается в том, что вы не завернули его в обратном вызове, но сразу же выполнили его, когда functions.php была загружена ядром. К тому времени глобальный объект $wp_query не будет полностью инициализирован, а is_category() и т. Д. Не смогут выполнить то, что вы ожидаете от них. Поэтому ваши проверки if / else должны быть перемещены внутри обратного вызова следующим образом:

 add_filter( 'body_class', 'addBodyClasses' ); function addBodyClasses( $classes ) { if ( is_category() || is_tag() || is_home() ) { $classes = array_merge( $classes, array( 'hentry', // other classes you want to add go here ) ); } return $classes; }