web-dev-qa-db-ja.com

分類法で用語の数を数える方法

カスタム投稿タイプ "Services"があります。 「service-category」という階層的分類法があります。サービスカテゴリには、親と子の両方の用語があります。

分類法では親用語の数を数える必要があります。投稿しません。分類法の用語の数は私のコードで再帰的ループでページをレイアウトするために使用されています。

私が研究したことはすべて、分類法における用語の数ではなく、用語ごとの投稿の数についてです。

ご協力ありがとうございます。

1
BitBug

@shanebpが示唆するように、あなたは wp_count_terms() のように使うことができます:

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

上記はすべての上位の親用語をリストします、空かどうかは関係ありません。この関数は get_terms() functionsの引数を使用しています。これらの引数は以下のリンクまたは以下の引数にあります。

$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

これを試して。テストされていませんが動作するはずです - get_the_termsは各項を含む配列を返し、次にsizeof()がそれをカウントして整数を返します。変数$ numberは項の数に対応する整数を返します。

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

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