WordPress リンク付きターム一覧の表示方法

WordPress リンク付きターム一覧の表示方法

WordPress でリンク付きタームの一覧を表示する方法を紹介します。
例えば、サイドバーなどでリンク付きターム一覧を表示したい時に便利方法です。

タームの一覧を表示する方法

タクソノミーのタームの一覧を表示したい場合は wp_list_categories を使用します。
例えば、タクソノミーのスラッグが product-cat のターム一覧を表示したい場合は、
次のコードをテンプレートに追加します。

<ul>
<?php // タームの一覧を表示
$catlist = wp_list_categories(array(
'taxonomy' => 'product-cat', // タクソノミーの指定
'title_li' => '', // リストの外側に表示されるタイトルを非表示
));
echo $catlist; // タームの一覧を表示
?>
</ul>

タームと合わせて、タームに紐づく投稿の投稿数を表示したい場合はパラメーターを調整します。
例えば、タクソノミーのスラッグが product-cat でターム紐づく投稿の投稿数を括弧なしで表示したい場合は、
次のコードをテンプレートに追加します。

<ul>
<?php // タームの一覧を表示
$catlist = wp_list_categories(array(
'taxonomy' => 'product-cat', // タクソノミーの指定
'title_li' => '', // リストの外側に表示されるタイトルを非表示
'show_count' => 1, // カテゴリの投稿数を表示
'echo' => 0 // 設定した値を返す
));
$catlist = preg_replace('/<\/a> (\([0-9]*\))/', ' <span>$1</span></a>', $catlist); // 投稿数をタグで囲う
$catlist = str_replace(array('(',')'), '', $catlist); // 投稿数を囲う()を削除
echo $catlist; // タームの一覧を表示
?>
</ul>

wp_list_categories と get terms の違い

wp_list_categories は、リンク付きタームの一覧を「表示」することができます。
対して get_terms は、タームの情報を「取得」してから「表示」することがきます。

wp_list_categories は、タームがすでにliaタグで囲われた状態で表示されるので、
CSSを調整するだけで簡単に一覧を表示できます。

get_terms は、一度情報を取得してから表示するので、
見た目を変えたい、任意の項目を表示したいなど、カスタマイズして表示したい時に向いています。

そのほか、タームの取得について詳しく知りたい場合はWordPress ターム情報の取得と表示方法をご覧ください。

まとめ

WordPress でリンク付きタームの一覧を表示する方法を紹介しました。