Способы подсчета и вывода количества записей в рубрике на WordPress
Бывает необходимо отобразить на своем сайте, в активной рубрике (категория, которую вы просматриваете), количество постов, входящих в нее. В этой статье я покажу вам два простых способа, как можно это реализовать.
Вывод количества постов в рубрике с помощью функции «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» – статус поста. Допустимые статусы постов вы сможете найти в этой статье.