Возвращает true
, если пост отмечен хотя бы одним из указанных тегов, в противном случае — false
.
has_tag( $tag = '', $post = null )
$tag
(строка|целое|массив) — ID, название или ярлык метки, также можно передать несколько ID/названий/ярлыков через массив. Если не указан, то проверяет, имеются ли у поста хоть какие-то метки вообще.
$post
(объект) — пост, метки которого нужно проверить, по умолчанию — текущий пост цикла.
Примеры использования
Как всегда, начинаю с самого простого примера, проверяем пост с ID=541 на наличие в нем метки с ID=7:
if( has_tag( 7, 541 ) ){ echo 'Да'; } else { echo 'Нет'; }
Теперь проверим пост на принадлежность к нескольким меткам, у одной например нам известен ID, у второй ярлык, а у третьей название:
if( has_tag( array( 7, 'wordpress', 'Какая-то метка' ), 541 ) ){ echo 'Одна из меток принадлежат указанному посту с ID=541'; }
Кстати, если в качестве параметра вы используете название метки, то регистр имеет значение!
Проверим текущий пост, отмечен ли он тегом «Wordpress». Если да, выводим ID поста:
if( has_tag( 'WordPress' ) ){ echo get_the_id(); }
Тот же самый пример, использованный в цикле. В результате у нас должен получиться столбик из ID постов, которые отмечены тегом «Wordpress».
while( have_posts() ): the_post(); if( has_tag( 'WordPress' ) ){ echo get_the_id() . '<br />'; } endwhile;
Пример со всеми параметрами по умолчанию:
if( !has_tag() ) echo 'Пост с ID=' . get_the_id() . ' не имеет меток вообще.<br />';