WordPressでタームの一覧を投稿数の多い順で表示する方法

投稿に設定されているタームをget_terms()で取得して、投稿数の多い順で一覧表示する方法の備忘録です。

get_terms()を使用してタームを一覧表示する方法は、こちらの記事で詳しくまとめています。

タームの並び替え

タームを投稿数の多い順で並び替えて一覧表示します。

テンプレート内のターム一覧を表示したい箇所に、以下のコードを記入します。

$args = array(
  'orderby'=>'count',
  'order'=>'DESC',
);
$terms = get_terms('tax-name', $args);
foreach ($terms as $term) {
  echo '<a href="' . get_term_link($term) . '">' . $term->name . '</a>';
}

配列$argsで設定した'orderby'=>'count'で取得したタームを投稿数で並び替えています。

'order'=>'DESC'で投稿数が多い順になります。少ない順に並べる場合は「ASC」を設定します。

「tax-name」の部分には、タームを表示したいタクソノミーのスラッグを設定します。

順序パラメータ

取得したタームはorderbyに以下のパラメータを設定することで、任意の順に並び替えが可能です。

  • name … 名前順(省略時は’name’が設定されます)
  • count … 投稿数順
  • slug … スラッグの名前順
  • id … ID順
  • none … 順序をつけない

上記は一例で、その他にもグループIDなど様々なパラメータで並び替えが設定できます。

タームの投稿数を表示

タームの一覧に、設定されている投稿の件数も合わせて表示するコードです。

$args = array(
  'orderby'=>'count',
  'order'=>'DESC',
);
$terms = get_terms('tax-name', $args);
foreach ($terms as $term) {
  echo '<a href="' . get_term_link($term) . '">' . $term->name . '<span class="count">('. $term->count . ')</span></a>';
}

ループ内の$term->countでタームの記事数を表示します。

Share on
関連記事
WordPressでタグクラウドを設置する方法
WordPressでタグクラウドを設置する方法
Custom Taxonomy Orderでカテゴリーを任意の順番に並び替える方法
Custom Taxonomy Orderでカテゴリーを任意の順番に並び替える方法
WordPressでカテゴリーを一覧表示する方法
WordPressでカテゴリーを一覧表示する方法