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

WordPressのカスタムタクソノミーで設定したタームを一覧表示する方法の備忘録です。
タクソノミーとタームについては、こちらの記事で詳しくまとめています。
タームのタイトル一覧を表示する
タームのタイトルだけを一覧で表示する方法です。
以下のコードを、テンプレートファイルの一覧を表示したい箇所に記述します。
$terms = get_terms('area');
foreach ($terms as $term) {
echo esc_html($term->name);
}
get_terms()にタームを表示したいタクソノミーのスラッグを設定します。上記のサンプルでは「area」を指定しています。
取得したタームの配列をforeachのループで一覧表示します。echoにesc_html($term->name)を設定してタームの名称を表示してます。
リンク付きの一覧を表示する
タームのタイトルにリンクをつけた一覧を表示する方法です。
上記のタイトルの一覧を表示するコードの、出力部分にリンクを追記します。
$terms = get_terms('area');
foreach ($terms as $term) {
echo '<a href="' . get_term_link($term) . '">' . $term->name . '</a>';
}
aタグのhrefにget_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を設定することで、トップレベルのタームのみを取得できます。
例えば親ターム「東京」に子ターム「新宿」「池袋」がある場合、「東京」のみ取得されます。


