すべての登録済み分類を、各登録済み分類について、その分類についてすべての用語を取得し、それぞれの用語について、実際にすべての投稿データを取得せずに投稿数を取得する簡単な方法はありますか。
私はそれが最も確実に可能であると思います。また、 $wpdb
を使用した非常に長いデータベースクエリが必要になると思います。
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()
を使用できます。
<?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 .'';
}
?>