Как подсчитать количество терминов в таксономии
У меня есть пользовательский тип записи "Услуги". Он имеет иерархическую таксономию "категория обслуживания". Категория обслуживания имеет как родительские, так и дочерние термины.
Мне нужно подсчитать количество родительских терминов в таксономии. НЕ посты. Число терминов в таксономии используется в моем коде для компоновки страницы в рекурсивном цикле.
Все, что я исследовал, касается количества сообщений за семестр, а не количества терминов в таксономии.. Я уверен, что мне не хватает очевидный способ сделать это, но я с ним не сталкивался.
Заранее спасибо за вашу помощь!
2 answers
Как предполагает @shanebp, вы могли бы использовать wp_count_terms()
вот так:
$numTerms = wp_count_terms( 'service-category', array(
'hide_empty'=> false,
'parent' => 0
) );
Выше будут перечислены все основные родительские термины, пустые или нет. Эта функция использует get_terms()
аргументы функций, которые можно найти по ссылке или в приведенных ниже аргументах:
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => true,
'exclude' => array(),
'exclude_tree' => array(),
'include' => array(),
'number' => '',
'fields' => 'all',
'slug' => '',
'parent' => '',
'hierarchical' => true,
'child_of' => 0,
'get' => '',
'name__like' => '',
'description__like' => '',
'pad_counts' => false,
'offset' => '',
'search' => '',
'cache_domain' => 'core'
);
Попробуйте это. Непроверенный, но должен работать -- get_the_terms возвращает массив с каждым термином, а затем sizeof() подсчитывает его, возвращая целое число. Переменная $number вернет целое число, соответствующее количеству терминов.
$terms = get_the_terms ( $post->ID, 'service-category' );
$number = sizeof ($terms);
echo $number;
if ( $number == XX ) {
// do something
}