wp_count_terms() — возвращает общее количество рубрик, меток или других таксономий на блоге

Для тех, кто не знает, узнать количество меток, рубрик и так далее можно в админке, здесь же мы будем говорить непосредственно про программную часть, а именно — про wp_count_terms().

количество рубрик в админке WordPress

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

По сути является аналогом функции get_terms() со значением параметра $args['fields'] равным count.

wp_count_terms( $taxonomy, $args = array() )
$taxonomy
(строка) Имя таксономии, например post_tag (метки) или movie (собственная произвольная таксономия).
$args
(массив) Функция поддерживает параметры get_terms() за исключением естественно fields, order, orderby, hierarchical.

И есть ещё одно отличие в параметрах, wp_count_terms() выставляет параметр hide_empty равным false (то есть при подсчете учитываются также и элементы, в которых нет постов).

Пример 1. Как узнать, сколько всего рубрик на блоге.

Давайте выясним это:

$kolichestvo_rubrik = wp_count_terms( 'category' ); // присвоим значение переменной, у меня допустим это число 18
echo $kolichestvo_rubrik; // выведет 18

А теперь подсчитываем только те рубрики, в которых есть посты:

$rubriki_s_postami = wp_count_terms( 'category', array( 'hide_empty' => true ) ); // у меня допустим 15 рубрик, в которых есть посты
echo $rubriki_s_postami; // выведет 15 соответственно

Пример 2. Определим общее число тегов на сайте.

На самом деле всё делается точно так, как в примере выше. Единственное изменение — это название таксономии, у меток она называется post_tag.

$kolichestvo_metok = wp_count_terms( 'post_tag' );

Пример 3. Определяем программным способом чего больше — меток или рубрик.

Конечно, в сравнении можно задействовать и элементы других таксономий.

$kolichestvo_rubrik = wp_count_terms( 'category' ); // определили число категорий
$kolichestvo_metok = wp_count_terms( 'post_tag' ); // определили число тегов
 
if( $kolichestvo_rubrik > $kolichestvo_metok ) { // теперь просто сравниваем полученные значения
	echo 'Рубрик больше чем меток.';
} elseif( $kolichestvo_rubrik < $kolichestvo_metok ) {
	echo 'Меток больше чем рубрик.';
} else {
	echo 'Сколько рубрик, столько и меток.';
}
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.