has_category()WP 3.1.0

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

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

Если не переданы никакие рубрики для сравнения, то функция будет проверять присвоена ли посту хоть одна рубрика.

Работает на основе: has_term()
Основа для: in_category()
1 раз — 0.003414 сек (очень медленно) | 50000 раз — 0.84 сек (очень быстро) | PHP 7.1.5, WP 4.8.1

Хуков нет.

Возвращает

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

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

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

Примеры

1

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

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

Список изменений

С версии 3.1.0 Введена.

Код has_category() WP 6.6.2

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