get_the_tags()
Получает массив меток текущего поста. Каждый элемент массива - это объект WP_Term. Можно использовать внутри Цикла.
Функция ничего не выводит на экран. Данные нужно обработать: получить из полученного массива и только потом вывести на экран.
Хуки из функции
Возвращает
WP_Term[]|false|WP_Error. Каждый объект WP_Term содержит следующие данные:
WP_Term Object ( [term_id] => 37 - ID метки [name] => Кодекс - название метки [slug] => codex - альтернативное название - ярлык [term_group] => 0 - группа, к которой принадлежит метка, если такая имеется [term_taxonomy_id] => 37 - с версии 4.4 равно term_id [taxonomy] => post_tag - таксономия. Для этого примера всегда 'post_tag' [description] => - описание метки, указанное в настройках [parent] => 0 - родительский термин (у метки всегда 0) [count] => 19 - количество постов у метки )
Использование
get_the_tags( $post );
- $post_id(число|WP_Post)
- ID поста, метки которого нужно получить.
Примеры
#1 Выведем метки поста
1) Выведем названия меток текущего поста (в цикле) через пробел:
$posttags = get_the_tags();
if( $posttags ){
foreach( $posttags as $tag ){
echo $tag->name . ' ';
}
}
2) Выведем название только первой метки поста:
$posttags = get_the_tags();
if ( $posttags ) {
echo $posttags[0]->name . ' ';
} #2 Выведем картинки меток поста.
У нас есть картинки в папке image в каталоге сайта, названные по ID меток (12.jpg - картинка для метки 12). Выведем картинки меток текущего поста, в атрибуте alt укажем называние метки:
$posttags = get_the_tags();
if ( $posttags ) {
foreach( $posttags as $tag ) {
echo '<img src="http://example.com/images/' . $tag->term_id . '.jpg"
alt="' . $tag->name . '" />';
}
} #3 Выведем нужный код, если у поста есть нужная метка.
Этот пример выведет HTML код, в зависимости от того есть у записи определенная метка или нет. Просто добавьте несколько условий else if, как показано в примере:
$all_the_tags = get_the_tags();
if( $all_the_tags ){
foreach( $all_the_tags as $this_tag ){
if( $this_tag->name == 'sometag' ) {
echo '<p>HTML КОД <img src="someimage.jpg" /></p>';
}
elseif( $this_tag->name == 'someothertag' ){
echo '<p>ДРУГОЙ HTML КОД <img src="someotherimage.jpg"></p>';
}
else {
// не найдена ни одна метка
}
}
} #4 Функция вывода меток в выпадающем списке.
function drop_tags(){
echo "<select onChange="document.location.href=this.options[this.selectedIndex].value;">";
echo "<option>Tags</option>n";
foreach( get_the_tags() as $tag ){
echo "<option value="";
echo get_tag_link($tag->term_id);
echo "">".$tag->name."</option>n";
}
echo "</select>";
} #5 Получить все посты, связанные с текущим по меткам
if( $tag_objects = get_the_tags() ){
$tag_ids = array_map( fn( $tag ) => $tag->term_id, $tag_objects );
$posts = new WP_Query( [
'posts_per_page' => -1,
'tag__in' => $tag_ids,
'post__not_in' => [ get_queried_object_id() ]
] );
foreach( $posts->posts as $post ) {
print_r( $post );
}
}
Список изменений
| С версии 2.3.0 | Введена. |
Код get_the_tags() get the tags WP 7.0
function get_the_tags( $post = 0 ) {
$terms = get_the_terms( $post, 'post_tag' );
/**
* Filters the array of tags for the given post.
*
* @since 2.3.0
*
* @see get_the_terms()
*
* @param WP_Term[]|false|WP_Error $terms Array of WP_Term objects on success, false if there are no terms
* or the post does not exist, WP_Error on failure.
*/
return apply_filters( 'get_the_tags', $terms );
}