今回は特定のカスタムタクソノミーのタームを一覧にして表示する方法を紹介します。
ターム=カスタムタクソノミーに入ってる各々のカテゴリーみたいなものです。
リンク付きでタームを一覧表示する方法
以下のコードをコピペでokです。
カスタムタクソノミー名は各自書き換えてください。
<ul>
<?php
$terms = get_terms('カスタムタクソノミー名');
foreach ( $terms as $term ) {
echo '<li><a href="'.get_term_link($term).'">'.esc_html($term->name).'</a></li>';
}
?>
</ul>
get_terms()
は引数のカスタムタクソノミーにあるタームの情報を配列で取得する関数です。
これをforeachでループし、全てのタームのスラッグとターム名を出力します。ターム名は$term->name
で取得可能です。
get_term_link()
は引数に渡された配列になっているターム情報から、アーカイブページへのリンクを取得する関数です。
そのタームの記事一覧ページへリンクを繋げたい場合はget_term_link($term)
とすればokです($termは配列です)
ターム名は念の為esc_html()
でエスケープしておくといいと思います(正直あってもなくてもそこまで変わらない気がする…)
リンクなしでタームを一覧表示する方法
リンクがいらない場合は<a>
タグを削除すればいいだけですね。
<ul>
<?php
$terms = get_terms('カスタムタクソノミー名');
foreach ( $terms as $term ) {
echo '<li>'.esc_html($term->name).'</li>';
}
?>
</ul>
タグの部分は自分の好きなようにマークアップできるので、好きなクラスをつけたり、<span>などでマークアップすることもできます。
空のタームまで含めて一覧表示する方法
上の2つの方法では空のタームは表示されません。
空のタームまで含めて表示させたい場合は第二引数にhide_empty=0
を指定しましょう。
<ul>
<?php
$terms = get_terms('カスタムタクソノミー名', 'hide_empty=0');
foreach ( $terms as $term ) {
echo '<li>'.esc_html($term->name).'</li>';
}
?>
</ul>
まとめ
カスタムタクソノミーのターム一覧を表示する方法を紹介しました。
実際の案件でも使う機会がそこそこあると思うので知っておくといいと思います。
何も知らないと難しそうと思ってしまいますが、コード自体はシンプルなので覚えておくといいでしょう。