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 />';

Источник: misha.blog

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

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: