has_category

Проверяет находится ли текущая (или указанная) запись хоть в одной из указанных категорий.

Работает только для таксономии category, если нужно проверить если ли у записи элементы другой таксономии, то используйте has_term().

Если не переданы никакие рубрики для сравнения, то функция будет проверять присвоена ли посту хоть одна рубрика.
✈ 1 раз = 0.001945с = очень медленно | 50000 раз = 46с = очень медленно

Хуков нет.

Возвращает

True/false. True – если если у поста есть хоть одна из указанны категорий.

Использование

has_category( $category, $post );
$category(строка/число/массив)
name/term_id/slug рубрики или массив из этих значений в которых нужно проверить присутствие записи.
По умолчанию: ”
$post(число/объект)
Запись (пост), у которого нужно проверить наличие указанных рубрик.
По умолчанию: null

Примеры

#1 Проверим есть ли у поста хоть одна указанная рубрика

$post_id = 6235;
if( has_category( array(37,'history'), $post_id) ){
	echo "Пост с ID=$post_id находится в рубрики `37` или `history`";
}

Код из


wp-includes/category-template.php

WP 4.7.2

<?php
function has_category( $category = '', $post = null ) {
	return has_term( $category, 'category', $post );
}