web-dev-qa-db-ja.com

ポストカウントゼロで各分類のすべての分類とすべての用語を取得する方法

すべての登録済み分類を、各登録済み分類について、その分類についてすべての用語を取得し、それぞれの用語について、実際にすべての投稿データを取得せずに投稿数を取得する簡単な方法はありますか。

私はそれが最も確実に可能であると思います。また、 $wpdb を使用した非常に長いデータベースクエリが必要になると思います。

2
Michael Ecklund

get_terms - でこれを実行できます。これにより、1つ(または複数)の分類法からすべて(または一部)の用語を取り出すことができます。

デフォルトでは「空」の用語は除外されているので、引数を適切に設定する必要があります。

 //Array of taxonomies to get terms for
 $taxonomies = array('category','post_tags','my-tax');
 //Set arguments - don't 'hide' empty terms.
 $args = array(
     'hide_empty' => 0
 );

 $terms = get_terms( $taxonomies, $args);
 $empty_terms=array();

 foreach( $terms as $term ){
     if( 0 == $term->count )
          $empty_terms[] = $term;

 }

 //$empty_terms contains terms which are empty.

プログラムで登録された分類法の配列を取得したい場合は get_taxonomies() を使用できます。

6
Stephen Harris
<?php
// your taxonomy name
$tax = 'cat';

// get the terms of taxonomy
$terms = get_terms( $tax, $args = array(
  'hide_empty' => false, // do not hide empty terms
));

// loop through all terms
foreach( $terms as $term ) {

    // Get the term link
    $term_link = get_term_link( $term );

    if( $term->count > 0 )
        // display link to term archive
        echo '<a href="' . esc_url( $term_link ) . '">' . $term->name .'</a>';

    elseif( $term->count !== 0 )
        // display name
        echo '' . $term->name .'';
}
?>
1
ztvmark