has_tag() – проверяет пост на наличие в нем перечисленных меток (тегов)

Возвращает 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 />';
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.