Как вывести теги с количеством постов

Как вывести теги с количеством постов | n-wp.ru
Код функции, позволяющей выводить метки с количеством постов.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

На своем личном сайте я давно уже используют вывод тегов с количеством постов, опубликованных с этими тегами. Такой подход я считаю более наглядным – он сразу показывает, насколько популярен тег в блоге. Заменить обычные, ни о чем не говорящие теги на теги с количеством постов довольно легко.

Как вывести теги с количеством постов

Первым шагом будет создание функции, подсчитывающей количество постов с определенным тегом. Для этого вставляем в файл functions.php следующий код:

function tags_with_count( $format = 'list', $before = '', $sep = '', $after = '' ) {
	global $post;
	$posttags = get_the_tags($post->ID, 'post_tag' );

	if ( !$posttags )
		return;

	foreach ( $posttags as $tag ) {
		if ( $tag->count > 1 && !is_tag($tag->slug) ) {
			$tag_link = '' . $tag->name . ' (' . number_format_i18n( $tag->count ) . ')';
		} else {
			$tag_link = $tag->name;
		}

		if ( $format == 'list' )
			$tag_link = '<li>' . $tag_link . '</li>';

		$tag_links[] = $tag_link;
	}

	echo $before . join( $sep, $tag_links ) . $after;
}

Вторым шагом будет замена обычных тегов на теги с количеством постов. Для этого открываем файл, в котором нужно поменять теги (если это одиночная запись, то открываем single.php, если главная страница, то открываем index.php, если архив, то открываем archive.php, если страница результатов поиска, то открываем search.php – в нестандартных темах у этих страниц могут быть другие файлы), и находим все вызовы функции, отображающей теги

</pre>
<p>и меняем ее на новую функцию </p>
<pre>

Все – пользуемся с умом.

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. the_R

    о! спасибо за идею

    Ответить
  2. katherine

    У вас код последний пропал.. Или это только у меня так?

    Ответить
    1. Очистите кэш браузера (Ctrl+Shift+Del) и откройте страницу заново.

      Ответить
      1. katherine

        Теперь всё ОК :)

        Ответить
  3. tabu

    Подскажите, с помощью какой функции показать просто количество записей тега?

    Ответить
    1. Bigman

      Вы нашли способ вывести количество записей тега? Очень нужен.

      Ответить
      1. tiaurus автор

        А этот пост – не способ?

        Ответить
        1. Bigman

          Дело во том что мне нужен код наподобие category_count; ?> только насчет тегов, потому как он адекватно встраивается в скрипт создания графиков и позволяет автоматически в график выводить статистику по количеству постов, меток и т.д.

          Ответить
        2. Voeslav

          Вообще говоря, это ограниченный способ.
          Он не решает такой простой задачи, как: вывод ограниченного по количеству (то есть не все существующие метки выводятся) списка меток с количеством записей в виджете (в сайдбаре). Независимого от страницы или поста, на которых мы находимся. Например, нужно вывести хронологию работ в виде:
          2014 (3)
          2015 (5)

          Ответить
          1. tiaurus автор

            Согласен, способ ограниченный. Предложите своё решение.

            Ответить
            1. Voeslav

              Если б – я не программист, к сожалению, а в открытом доступе решений нет.
              Я, кстати, использовал велосипед из вашей статьи https://n-wp.ru/kak-vyichislit-kolichestvo-postov-opublikovannyih-s-opredelennoy-metkoy-kod-i-plagin-dlya-vyichisleniya-postov-s-metkoy-v-kategori-ili-proizvolnoy-taksonomii/
              Получилось не совсем то, что надо, т.к. виджет приходится набивать руками, единственное, что происходит на автомате – это подсчёт количества постов с данной меткой. Но, поскольку новые метки появляются редко, для меня решение вполне рабочее. (Пример работы – в сайдбаре справа внизу: http://web4sb.ru/blog )
              Ещё одно решение, показывающее, что как минимум, вывод числа постов рядом с меткой – это возможно: http://neolot.com/wordpress/vyvod-tegov-wordpress-v-neskolko-kolonok-v-alfavitnom-poryadke
              Там, правда, выводятся метки на отдельной странице со своим шаблоном, а не в виджете, но для понимающих в программировании, как мне кажется, должно помочь)

              Ответить
              1. tiaurus автор

                Вам нужен код, выводящий все метки с количеством постов? Так вот же он — https://n-wp.ru/kolichestvo-zapisey-po-metkam/. Чтобы вывести результат работы этого кода в сайдбаре в виде виджета, есть плагины, например PHP Snippets.

                Ответить
                1. Voeslav

                  Спасибо за код, но это не совсем то, что требуется. Он выводит ВСЕ теги, какие есть, а мне нужен, как я и говорил выше, код со стандартной для WP возможностью: ограничить вывод только определёнными метками и, во-вторых, с такой же стандартной возможностью выводить метки не облаком, а списком. То есть по-сути этот список меток выводился у меня с помощью манипуляций с файлом category-template.php (ограничение тегов и вывод списком). И если бы к этому как-то можно было прикрутить ещё и цифру кол-ва постов рядом с меткой – было бы ровно то, что нужно )

                  Ответить