WordPressでタクソノミーのターム一覧を表示する方法

WordPressのカスタムタクソノミーで設定したタームを一覧表示する方法の備忘録です。

タクソノミーとタームについては、こちらの記事で詳しくまとめています。

タームのタイトル一覧を表示する

タームのタイトルだけを一覧で表示する方法です。

以下のコードを、テンプレートファイルの一覧を表示したい箇所に記述します。

$terms = get_terms('area');
foreach ($terms as $term) {
  echo  esc_html($term->name);
}

get_terms()にタームを表示したいタクソノミーのスラッグを設定します。上記のサンプルでは「area」を指定しています。

取得したタームの配列をforeachのループで一覧表示します。echoesc_html($term->name)を設定してタームの名称を表示してます。

リンク付きの一覧を表示する

タームのタイトルにリンクをつけた一覧を表示する方法です。

上記のタイトルの一覧を表示するコードの、出力部分にリンクを追記します。

$terms = get_terms('area');
foreach ($terms as $term) {
  echo '<a href="' . get_term_link($term) . '">' . $term->name . '</a>';
}

aタグのhrefget_term_link($term)で、そのタームに属する投稿の一覧ページへ遷移するリンクを設定しています。

空のタームを表示する

通常は投稿に設定のない空のタームはget_terms()で取得されず、一覧に含まれません。投稿に設定されていないタームも一覧に表示したい場合は、パラメーターを調整します。

get_terms()のパラメーターに、hide_empty=0を追記して空のタームを表示します。

$terms = get_terms('area', 'hide_empty=0');
foreach ($terms as $term) {
  echo  esc_html($term->name);
}

投稿を持たない空のタームも取得され、一覧に表示されます。

親のタームのみ表示する

親子関係にあるタームの親だけを表示したい場合は、get_terms()のパラメーターに、['parent' => 0]を追記します。

$terms = get_terms('area', ['parent' => 0]);
foreach ($terms as $term) {
  echo  esc_html($term->name);
}

'parent' => 0を設定することで、トップレベルのタームのみを取得できます。

例えば親ターム「東京」に子ターム「新宿」「池袋」がある場合、「東京」のみ取得されます。

Share on
関連記事
WordPressで固定ページに投稿ページ一覧を表示する方法
WordPressで固定ページに投稿ページ一覧を表示する方法
WordPressでパンくずリストを自作する方法
WordPressでパンくずリストを自作する方法
Snow Monkey Formsの確認画面で一部のテキストを非表示にする方法
Snow Monkey Formsの確認画面で一部のテキストを非表示にする方法