WordPress как на ладони
rgbcode is looking for WordPress developers.

get_the_tags()WP 2.3.0

Получает массив меток текущего поста. Каждый элемент массива - это объект WP_Term. Можно использовать внутри Цикла.

Функция ничего не выводит на экран. Данные нужно обработать: получить из полученного массива и только потом вывести на экран.

Работает на основе: get_the_terms()
1 раз — 0.004595 сек (очень медленно) | 50000 раз — 1.34 сек (быстро) | PHP 7.2.16, WP 5.2
Хуки из функции

Возвращает

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 поста, метки которого нужно получить.

Примеры

5

#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 . ' ';
}
0

#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 . '" />';
	}
}
0

#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 {
			// не найдена ни одна метка
		}
	}
}
0

#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>";
}

Список изменений

С версии 2.3.0 Введена.

Код get_the_tags() WP 6.4.3

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 );
}
2 комментария
    Войти