私は「国」と呼ばれるカスタム分類法を持っています。次のように、公開されている記事の数を角かっこで囲んで各用語(国)を取得する方法を教えてください。
次のコードでは、 "国"分類法の全用語の数が表示されます。
$countries_count = wp_count_terms( 'countries' );
echo $countries_count;
しかし、これが私の問題の出発点にすぎないことを私は知っています。助言がありますか?
分類法に関連付けられているすべての用語のリストを取得するには、 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 . ' (' . $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 . ' (' . $term->count . ')' . '</a></li>';
}
echo '</ul>';
}
?>
WP Queryで試すことができます。まだテストしていないので、うまくいくかどうかを教えてください。
$query = new WP_Query( array( 'taxonomy' => 'term', 'posts_per_page' => -1 ) );
$count = $query->post_count;
今はこれをテストすることはできませんが、「国」に関するすべての用語を入手してからそれらをループ処理して、それぞれについて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>"; }