Как подсчитать количество терминов в таксономии


У меня есть пользовательский тип записи "Услуги". Он имеет иерархическую таксономию "категория обслуживания". Категория обслуживания имеет как родительские, так и дочерние термины.

Мне нужно подсчитать количество родительских терминов в таксономии. НЕ посты. Число терминов в таксономии используется в моем коде для компоновки страницы в рекурсивном цикле.

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

Заранее спасибо за вашу помощь!

Author: BitBug, 2014-12-11

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'
); 
 6
Author: Howdy_McGee, 2014-12-11 22:14:17

Попробуйте это. Непроверенный, но должен работать -- get_the_terms возвращает массив с каждым термином, а затем sizeof() подсчитывает его, возвращая целое число. Переменная $number вернет целое число, соответствующее количеству терминов.

$terms = get_the_terms ( $post->ID, 'service-category' );
$number = sizeof ($terms);
echo $number;

if ( $number == XX ) {
// do something
}
 1
Author: edwardr, 2014-12-11 21:43:01