has_category()
Проверяет находится ли текущая (или указанная) запись хоть в одной из указанных категорий.
Работает только для таксономии 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 Проверим есть ли у поста хоть одна указанная рубрика
$post_id = 6235;
if( has_category( array(37,'history'), $post_id) ){
echo "Пост с ID=$post_id находится в рубрики `37` или `history`";
}
Список изменений
| С версии 3.1.0 | Введена. |
Код has_category() has category WP 7.0
function has_category( $category = '', $post = null ) {
return has_term( $category, 'category', $post );
}