web-dev-qa-db-ja.com

すべての用語とそのカスタム投稿数を照会/一覧表示する

カスタム投稿タイプ内の(すべてのカスタム分類からの)すべての用語をカスタム投稿数でクエリ/一覧表示したいです。これは私が今まで持っているものです...

$the_query = new WP_Query( array(
    'post_type' => 'teacher',
    'tax_query' => array(
        array(
            'taxonomy' => 'ALL CUSTOM TAXONOMIES',
            'field' => 'id',
            'terms' => 'ALL TERMS'
        )
    )
) );
$count = $the_query->found_posts;
$term_name = $the_query->get_term;
echo $term_name;
echo ' - ';
echo $count;
1
Pete

問題の分類法が問題のpost_typeでのみ使用されている場合は、次の単純な関数が必要なことを行います。

function
count_term_use ($post_type)
{
    $args = array (
        'taxonomy' => get_object_taxonomies ($post_type, 'names'),
        ) ;
    foreach (get_terms ($args) as $term) {
        echo "$term->name - $term->count\n" ;
        }

    return ;
}

ただし、分類法が複数のpost_typeによって共有されている場合、上記の数はその用語を使用しているすべてのタイプの投稿の総数を反映するため、探しているものではありません。それがあなたのケースに当てはまるならば、私に知らせてください、そして、私はもっと複雑な(そして実行時間/ dbクエリに関して高価な)コードをポストするつもりです。

投稿を数えるための組み込み関数 - wp_count_posts()があります。これを使用して、投稿の種類と投稿のステータスを数えることができます。

$published = wp_count_posts('teacher')->publish;
$future = wp_count_posts('page')->future;

詳細については、コードリファレンスの wp_count_posts() を参照してください。

0
Max Yudin