web-dev-qa-db-fra.com

Comment compter le nombre de termes dans une taxonomie

J'ai un type de message personnalisé "Services". Il a une taxonomie hiérarchique de "catégorie de service". La catégorie de service comprend les termes parent et enfant.

Je dois compter le nombre de termes parents dans la taxonomie. PAS les messages. Le nombre de termes de la taxonomie est utilisé dans mon code pour mettre en forme la page dans une boucle récursive.

Toutes les recherches que j'ai effectuées concernent le nombre de postes par mandat, pas le nombre de termes de la taxonomie. Je suis certain que je manque une façon évidente de le faire, mais je ne l'ai pas encore parcourue.

Merci d'avance pour votre aide!

1
BitBug

Comme @shanebp le suggère, vous pouvez utiliser wp_count_terms() comme ceci:

$numTerms = wp_count_terms( 'service-category', array(
    'hide_empty'=> false,
    'parent'    => 0
) );

La liste ci-dessus répertorie tous les principaux termes parents, vides ou non. Cette fonction utilise les arguments get_terms() functions qui peuvent être trouvés dans le lien ou les arguments ci-dessous:

$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'
); 
3
Howdy_McGee

Essaye ça. Non testé mais devrait fonctionner - get_the_terms renvoie un tableau avec chaque terme, puis sizeof () le compte, renvoyant un entier. La variable $ number retournera un entier correspondant au nombre de termes.

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

if ( $number == XX ) {
// do something
}
0
edwardr