web-dev-qa-db-ja.com

各カスタム分類用語の公開済み投稿数を表示しますか?

私は「国」と呼ばれるカスタム分類法を持っています。次のように、公開されている記事の数を角かっこで囲んで各用語(国)を取得する方法を教えてください。

  • ウルグアイ(3)
  • チリ(5)
  • タイ(2)
  • 等.

次のコードでは、 "国"分類法の全用語の数が表示されます。

$countries_count = wp_count_terms( 'countries' );
echo $countries_count; 

しかし、これが私の問題の出発点にすぎないことを私は知っています。助言がありますか?

1
Traveler

分類法に関連付けられているすべての用語のリストを取得するには、 get_terms を使用できます。すべての個別の用語を取得したら、$term->nameを使用して用語の名前を表示し、$term->countを使用してその特定の用語内の投稿数を取得できます。

これは、コーデックスにあるコードを少し修正したものです。必要に応じて出力をさらに変更できます。

<?php  
$terms = get_terms('countries');

 if ( !empty( $terms ) && !is_wp_error( $terms ) ){
     echo '<ul>';
     foreach ( $terms as $term ) {
       echo '<li>' . $term->name . '&nbsp;(' . $term->count . ')' . '</li>';
     }
     echo '</ul>';
 } 
?> 

_編集_

@Travelerのおかげで、リンクをクリック可能にする必要がある場合は、これが私のコードの別のバージョンです。

<?php 

  $terms = get_terms('countries'); 
  if ( !empty( $terms ) && !is_wp_error( $terms ) ){ 
  echo '<ul>'; 

  foreach ( $terms as $term ) { 
     $term = sanitize_term( $term, 'countries' ); 
     $term_link = get_term_link( $term, 'countries' ); 

      echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '&nbsp;(' . $term->count . ')' . '</a></li>'; 
  } 
  echo '</ul>';
  }

?> 
1
Pieter Goosen

WP Queryで試すことができます。まだテストしていないので、うまくいくかどうかを教えてください。

$query = new WP_Query( array( 'taxonomy' => 'term', 'posts_per_page' => -1 ) );
$count = $query->post_count;
0
Alex Dumitru

今はこれをテストすることはできませんが、「国」に関するすべての用語を入手してからそれらをループ処理して、それぞれについてwp_count_termsを入手してください。

    $terms = get_terms("countries"); 
    if ( !empty( $terms ) && !is_wp_error( $terms ) ){
     echo "<ul>"; 
     foreach ( $terms as $term ) { 
     $args = array( 'slug' => $term->slug, ); 
     echo "<li>" . $term->name . "(" . wp_count_terms('countries', $args) . ")</li>";
    } 
    echo "</ul>"; }
0
leromt