WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

get_tags() WP 2.3.0

Получает массив объектов, с данными о метках. Данные можно получать по разным критериям (задается в параметре $args).

Работает на основе: get_terms()
Хуки из функции
Возвращает

Массив/число. Массив объектов WP_Term, содержащих данные о метке. Каждый объект содержит следующие данные:

  • term_id - ID метки;
  • name - название метки;
  • slug - альтернативное название;
  • term_group - группа (не используется);
  • term_taxonomy_id - ID элемента таксономии (обычно совпадает с term_id);
  • taxonomy - название таксономии;
  • description - описание;
  • parent - ID родительского элемента таксономии (для меток не используется);
  • count - количество записей.

Шаблон использования

$terms = get_tags( [
	'number'       => 0,
	'offset'       => 0,
	'orderby'      => 'id',
	'order'        => 'ASC',
	'hide_empty'   => true,
	'fields'       => 'all',
	'slug'         => '',
	'hierarchical' => true,
	'name__like'   => '',
	'pad_counts'   => false,
	'get'          => '',
	'child_of'     => 0,
	'parent'       => '',
] );

Использование

$tags = get_tags( $args );
$args(строка/массив)
Аргументы в соответствии с которыми будут получены метки. Значение агрументов смотрите в описании функции get_terms().
По умолчанию: предустановленные

Примеры

#1. Выведем список меток, в виде ссылок на каждую метку.

И зададим тегу <a> уникальный класс и атрибут title:

$tags = get_tags();
$html = '<div class="post_tags">';

foreach ( $tags as $tag ) {
	$tag_link = get_tag_link( $tag->term_id );

	$html .= "<a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}'>";
	$html .= "{$tag->name}</a>";
}

$html .= '</div>';

echo $html;

Код get tags: wp-includes/category.php VER 5.1.1

<?php
function get_tags( $args = '' ) {
	$tags = get_terms( 'post_tag', $args );

	if ( empty( $tags ) ) {
		$return = array();
		return $return;
	}

	/**
	 * Filters the array of term objects returned for the 'post_tag' taxonomy.
	 *
	 * @since 2.3.0
	 *
	 * @param WP_Term[]|int $tags Array of 'post_tag' term objects, or a count thereof.
	 * @param array         $args An array of arguments. @see get_terms()
	 */
	$tags = apply_filters( 'get_tags', $tags, $args );
	return $tags;
}

Cвязанные функции

Из раздела: Метки

5 комментов
  • Эльвира

    Подскажите пожалуйста как сделать вывод случайных тегов? orderby rand не поддерживается sad

    Ответить5.5 лет назад #
    • @ Евгений cайт: blog2k.ru

      Можно получить все теги, потом их перемешать и выбрать первые N тегов.

      1
      Ответить5.4 лет назад #
  • Artemiy Egorov cайт: sitewanted.ru

    Скажите, как сделать так, чтоб count не считал посты, которые в draft ?
    Дело в том, что я сортирую теги так:

    $tags = get_tags(array(
      'number'    => 12,
      'orderby'   => 'count',
      'order'     => 'DESC'
    ));

    И он может поставить вверх тег, в котором вообще нет ни одного поста published

    Ответить1.3 года назад #
  • Adward5 cайт: cimetrica.ru

    Хотелось бы при выводе тегов знать общее количество (или вес) определенного тега в системе. Поясню

    К примеру, у статьи на сайте с десяток тегов. Образно: Алена Калугина, Евгений Яковлев, Игры кочевников, Ильдар Сафиуллин, Камилла Елисеева, Татьяна Павлова.

    Так вот, я точно знаю, что статей с тегом "Игры кочевников" и "Камилла Елисеева" - больше одного. Остальные теги, они т.н. "мусорные", то есть нигде на сайте, кроме данной статьи, они не присутствуют (но могут появиться статьи с этими тегами в будущем).

    Возникла идея подобные теги выводить, скажем, сереньким цветом (ну а может и не выводить вовсе). Поэтому перед выводом хотелось бы знать количество статей конкретного тега.

    Как можно узнать количество статей для каждого tag?

    Ответить9 дней назад #
Здравствуйте, !     Войти . Зарегистрироваться