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 в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

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

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал