WP_Term_Queryを使ってタームの一覧を出力する方法

WP_Term_Queryを使ってタームの一覧を出力する方法

WP_Term_Queryを使ってタームの一覧を出力する方法

WordPress4.6から追加されたWP_Term_Queryを使って、タームの一覧を出力する方法をご紹介いたします。

基本的な使い方は、get_termsと似ています。

WP_Term_Queryを使ってタームの一覧を出力する方法

タームの一覧を出力したい場所に、以下のようなコードを記述します。

<?php
$args = array(
  'taxonomy' => 'タクソノミー名',
  'orderby' => 'name', //名前でソート
  'order' => 'ASC', //ASC:昇順(初期値)、DESC:降順
  'hide_empty' => false //true:投稿がないタームの非表示、false:全て表示
);
$the_query = new WP_Term_Query($args);
foreach($the_query->get_terms() as $term){
  echo $term->term_id; //タームID
  echo $term->name; //ターム名前
  echo $term->slug; //タームスラッグ
  echo $term->term_taxonomy_id; //タームが属するタクソノミーのID
  echo $term->taxonomy; //タームが属するタクソノミーの名前
  echo $term->description; //タームの説明
  echo $term->parent; //親タームのID
  echo $term->count; //タームが使われている投稿数
}
?>

例えば、投稿数付きのターム一覧を出力したい場合は、以下のように記述します。

<?php
$args = array(
  'taxonomy' => 'タクソノミー名',
  'orderby' => 'name', //名前でソート
  'order' => 'ASC', //ASC:昇順(初期値)、DESC:降順
  'hide_empty' => false //true:投稿がないタームの非表示、false:全て表示
);
$the_query = new WP_Term_Query($args);
foreach($the_query->get_terms() as $term){
  $term_link = get_term_link($term->term_id); //タームアーカイブのリンク取得
  echo '<a href="'.$term_link.'">'.$term->name.' <span>'.$term->count.'</span></a>';
}
?>

ある特定の親タームに属する子ターム一覧を出力する場合は、以下のようになります。

<?php
$args = array(
  'taxonomy' => 'タクソノミー名',
  'orderby' => 'name', //名前でソート
  'order' => 'ASC', //ASC:昇順(初期値)、DESC:降順
  'hide_empty' => false, //true:投稿がないタームの非表示、false:全て表示
  'child_of' => '53' //親タームIDを指定
);
$the_query = new WP_Term_Query($args);
foreach($the_query->get_terms() as $term){
  $term_link = get_term_link($term->term_id); //タームアーカイブのリンク取得
  echo '<a href="'.$term_link.'">'.$term->name.' <span>'.$term->count.'</span></a>';
}
?>

「child_of」で親タームのIDを指定します。

あとがき

WP_Term_Queryを使えば、簡単にタームの一覧を出力することができますね。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です