Артём Мáлков

Способы подсчета и вывода количества записей в рубрике на WordPress

14 апр6 коммАртём Мáлков

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

Вывод количества постов в рубрике с помощью функции «get_category»

Как вы знаете, функция «get_category» очень полезная. Она помогает получить много параметров об активной (просматриваемой) или нужной вам рубрике. Одним из таких является параметр «category_count», который как раз и считает количество постов в рубрике.

Для вывода количества постов в просматриваемой рубрике воспользуйтесь следующим кодом:

$category_uid = get_queried_object();

echo "Постов в этой рубрике: ".get_category($category_uid->term_id)->category_count;

Для вывода количества постов из определенной рубрики воспользуйтесь следующим кодом:

echo "Постов в рубрике «Мультфильмы»: ".get_category("8")->category_count;

Где «8» – это ID нужной вам рубрики, в которой нужно считать количество постов.

Вывод количества постов в рубрике с помощью новой функции

Первое, что вам необходимо сделать – это в файл функции вашей темы (function.php), в самый низ перед закрывающим тегом ?> вставить:

function wp_cat_numb($id) {

	$category = get_category($id);
	$count = (int)$category->count;
	$taxonomy = "category";
	
	$array = array(
		"child_of" => $id
	);
	
	$tax_terms = get_terms($taxonomy, $array);

	foreach($tax_terms as $tax_term) {

		$count += $tax_term->count;

	}

	return $count;

} 

Для вывода количества постов в просматриваемой рубрике воспользуйтесь следующим кодом:

$category_uid = get_queried_object();

echo "Постов в этой категории: ".wp_cat_numb($category_uid->term_id);

Для вывода количества постов в нужной вам рубрике воспользуйтесь следующим кодом:

echo "Всего постов в рубрике «Мультфильмы»: ".wp_cat_numb("8");

Где «8» – ID категории, в которой нужно подсчитывать количество постов.

И в качестве небольшого бонуса:

Для получения количества всех постов на сайте воспользуйтесь следующим кодом:

echo "Всего постов на сайте: ".count(query_posts("&posts_per_page=-1"));

Для получения количества постов только из нужных категорий воспользуйтесь следующим кодом:

echo "Всего постов в рубрике «Мультфильмы» и «Боевики»: ".count(query_posts("cat=9,10&posts_per_page=-1"));

Где «9,10» – ID рубрик, в которых производится подсчет постов.

А с помощью функции «wp_count_posts» можно получить общее число постов по типам:

$count_posts = wp_count_posts();

echo "Всего постов на сайте: ".$count_posts->publish;

Где «publish» – статус поста. Допустимые статусы постов вы сможете найти в этой статье.

Рекомендуем к просмотру
Как вывести количество записей (постов) в рубрике (категории) в меню в WordPress?
Посты
Стандартные статусы постов в WordPress
Статьи и советы
Как исключить вывод постов из определенных рубрик на главной странице в WordPress?
Хаки
6
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    3
      •  Проверенный
    24 июл в 15:17

    Добрый день! А можно ли как-то сделать, чтобы в количество постов входили не только опубликованные, но и личные?

      • 0
      1091
        •  Команда Pandoge
      24 июл в 15:25

      Artem Kalashnikov, здравствуйте! Для какого случая из поста нужна эта доработка?

      • 2
      3
        •  Проверенный
      24 июл в 17:44

      Артём Мáлков, есть сайт с тремя основными категориями "Читаю сейчас", "Хочу прочитать" и "Прочитал". Хочу сделать вывод количества постов каждой категории на странице этой категории. И мне это уже удалось. Но в этом количестве не учитывается количество личных постов. А мне хотелось бы, чтобы учитывались в общем количестве и личные посты. Можно ли сделать выборку количество по типу записи и по категории? В идеале я бы даже сделал отображение вот так "(123) + (21)".

      • 0
      1091
        •  Команда Pandoge
      3 авг в 16:37

      Artem Kalashnikov, личные посты создаёт пользователь или администратор/редактор?

      • 2
      3
        •  Проверенный
      3 авг в 16:40

      Артём Мáлков, администратор. Но я уже вроде как сделал. Только там еще есть проблема с постами по тегам))) Может и этим как-нибудь займусь

      • 1
      1091
        •  Команда Pandoge
      3 авг в 19:22

      Artem Kalashnikov, хорошо, если будут ещё какие-то вопросы - пишите, постараюсь помощь мобильнее

Подняться наверх
Регистрация на сайте
Pandoge - уникальный проект, который собрал на своих страницах большой опыт многих людей в сфере сайтостроения.Присоединяйся и ты к сообществу, получай неограниченные знания и начинай творить свою мечту!Нажимая кнопку «Регистрация» вы даете согласие на обработку своих персональных данных.
Имя и фамилия
E-mail
Логин
Пароль
Регистрация
Pandoge