has_tag()WP 2.6.0

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

Указанные в параметре $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(число/объект)
Другой пост — не текущий, который нужно проверить на наличие у него указанных тегов.
По умолчанию: текущий пост

Примеры

0

#1 Проверим наличие любых меток у текущего поста:

<?php 
if( has_tag() )
	echo "У текущего поста есть метки"; 
?>
0

#2 Проверим принадлежит ли пост к метке "kino", если да выведем на экран соответствующую надпись:

<?php
if( has_tag( 'kino' ) )
	echo "У текущего поста есть метка `kino`"; 
?>
0

#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() WP 6.7.1

function has_tag( $tag = '', $post = null ) {
	return has_term( $tag, 'post_tag', $post );
}