has_tag()
Проверяет принадлежит ли пост к указанным меткам, т.е. есть ли у поста указанные метки. Условный тег.
Указанные в параметре $tag
метки сравниваются с метками поста. Сравниваются названия, слаги и ID меток. Если переданы только ID меток (числа), то сравниваться будут только ID (term_ids).
Если параметру $tag
не передано ни одно значение, то будет проверятся имеет ли пост метки вообще.
Работает на основе: has_term()
1 раз — 0.001853 сек (очень медленно) | 50000 раз — 96.58 сек (очень медленно)
Хуков нет.
Возвращает
true|false
. true, если у поста есть указанные метки и false в противном случае.
Использование
if( has_tag( $tag, $post ) ){ // ... }
- $tag(строка/массив/число)
- Название, слаг или ID метки, наличие которых будет проверятся у текущего поста. Также можно указывать массивы названий, слагов и ID меток.
- $post(число/объект)
- Другой пост — не текущий, который нужно проверить на наличие у него указанных тегов.
По умолчанию: текущий пост
Примеры
#1 Проверим наличие любых меток у текущего поста:
<?php if( has_tag() ) echo "У текущего поста есть метки"; ?>
#2 Проверим принадлежит ли пост к метке "kino", если да выведем на экран соответствующую надпись:
<?php if( has_tag( 'kino' ) ) echo "У текущего поста есть метка `kino`"; ?>
#3 Проверим если ли у поста 56 метки 45 и 89 (вместо ID меток можно указать их названия или слаги):
<?php if( has_tag( array(45,89), 56 ) ) echo "У поста 56 (ID), есть метки с ID 45 и 89"; ?>
Список изменений
С версии 2.6.0 | Введена. |
С версии 2.7.0 | Tags given as integers are only checked against the post's tags' term_ids, not names or slugs. |
С версии 2.7.0 | Can be used outside of the WordPress Loop if $post is provided. |
Код has_tag() has tag WP 6.7.1
function has_tag( $tag = '', $post = null ) { return has_term( $tag, 'post_tag', $post ); }