Функция возвращает логическое true, если пост принадлежит одной из указанных рубрик, в обратном случае — false. Родительские рубрики не учитываются.
Использование
in_category( $category, $post )
Параметры
$category
(целое|строка|массив) (обязательное) одна или несколько (через массив) категорий, перечисленных по ID, имени или ярлыку,
$post
(целое|объект) (необязательно) ID или объект поста, по умолчанию — текущий пост в цикле
Примеры использования
Проверяем, принадлежит ли пост с указанным ID к рубрикам «WordPress» или «HTML»:
if ( in_category( array('WordPress', 'HTML'), 5 )) { // действия в случае, если принадлежит категориям }
То же самое условие, только с использованием в качестве параметров ID рубрик:
if ( in_category( array(15, 4), 5 )) { // WordPress с ID = 15, HTML с ID = 4 }
Обратное условие:
if ( !in_category( array('WordPress', 'HTML'), 5 )) { // действия в случае, если НЕ принадлежит категориям }
Параметр $post можно не указывать в цикле, а также в файле single.php — автоматически будет определен текущий пост.
if ( in_category( 'wordpress') ) { // в качестве параметра указан ярлык рубрики }
Для того, чтобы проверить, принадлежит ли пост нескольким конкретным категориям одновременно, используйте следующее условие:
if ( in_category(4) && in_category('wordpress') && in_category('css') ) { // находится во всех трех рубриках }
Короче говоря условие будет выполняться, если: