WordPress в сети интернет довольно часто используется для ведения блога, и не только. Его мощь, и в тоже время простота в использовании завоевала большую популярность среди блогеров, которые предпочли использовать в качестве платформы этот движок. Современные блоги содержащие множество записей разделяют посты по рубрикам, тем самым создавая некие тематические разделы. Всё это в целом направлено придать удобство при сёрфинге на сайте. При показе рубрики иногда неплохо выводить счетчик, который информирует о количестве записей в какой-либо конкретной категории. Либо показывать в навигационном меню, в виде небольших цифр возле названия рубрики.
В WordPress есть встроенная функция, с помощью которого, зная id раздела, мы можем получить количество опубликованных записей в рубрике. Функция называется get_category(), при успешном обращении к ней она возвращает множество полезной информации, одной из которых и является счетчик количества записей.
Вызов функции:
<?php echo get_category($ID,$resType); ?>
$ID – id категории;
$resType – в качестве значения переменной передается параметр, который определяет, в каком виде будет возвращен результат. Возможные значения данного параметра:
ARRAY_A – ассоциативный массив;
ARRAY_N – индексированный массив;
В результате функция вернет массив, который может содержать такие значения параметров категории как:
• term_id – ID категории,
• name – название категории,
• slug – ярлык категории,
• description – описание категории,
• parent – ID родительской категории,
• count – количество постов в категории,
• term_group – значение колонки term_group в БД,
• term_taxonomy_id – ID таксономии, у категорий он равен 1,
• taxonomy – название таксономии, для категорий – category
Получить количество записей рубрики с помощью данной функции можно более удобным способом. Обратившись напрямую, к свойству category_count мы получаем число записей.
<?php echo get_category($ID)->category_count; ?>
Таким образом, мы можем обратиться к каждому параметру (возможные параметры описаны выше), получая в качестве возвращаемого результата его значение. Функция довольно удобна в использовании, плюс, она может оказаться в некоторых случаях весьма полезной.
Привет. А как будет выглядеть
category_count; ?>
если имеется ни одна категория, а штук 5 разных? Я их получаю из произвольного поля путем
ID, 'имя_поля', true); ?>
Т.е. как посчитать в сумме количество постов в нескольких категориях?
Спасибо.
Сорри, обрезало чего-то функции - напишу без треугольных скобок:
echo get_category($ID)->category_count; - Ваша
$key_sec = get_post_meta($post->ID, 'имя_поля', true); - моя
Если я правильно понял результат $key_sec у вас получается в виде массива, который содержит ID категорий. Сделайте перебор массива в цикле, внутри цикла делайте подсчет по каждой категории, плюс общий счетчик в виде переменной.
Спасибо за совет, но вот на последнем моменте и запнулся как раз: форичем прогнать получается - набор отдельных "количеств" получаю, а вот с суммирующей переменной - проблем: не представляю вообще как её сделать - не силен в пэ-хэ-пэ.
Подскажите плиз.
Спасибо.
$sum = 0; # счетчик
foreach ($arCategory as $catID){
$cnt = 0;
$cnt = get_category($catID)->category_count;
$sum = $sum + $cnt;
}
echo 'Общ. кол-во'.$sum;
в качестве подсказки)
Приветствую. А как мне реализовать такую вещь. На сайте у каждой статьи есть свой автор. У каждого из авторов есть какое то количество опубликованных статей. И под каждой из этих статей есть блок автора. Так вот как в этом блоке вывести сколько он опубликовал статей в одной рубрике и сколько в другой. К примеру: Василий Пупкин опубликовал: Видео (12), Фотошоп (16) ?