【旧刊】WordPressテーマ制作のみを取り扱った別冊電子書籍がAmazon Unlimitedでお楽しみ頂けます!!
Amazon Unlimited内で 田中勇輔 で検索してください。

☓ 閉じる

22Jun2013

カスタムタクソノミー(カスタム分類)情報を表示する方法

ループ内でカスタムタクソノミーを表示する方法を詳しく調べたのでφ(..)メモメモ

1. テンプレートタグ the_taxonomy() を使う

日本語版Codexでは一切記載がないのですが、ひそかに the_taxonomy() というテンプレートタグが存在しているようです。

このタグはカテゴリー情報を表示する the_category() のタクソノミー版で、パラメータを何も指定しなくても利用できます。

<?php the_taxonomies(); ?>

デフォルトでは

タクソノミー名:分類名1 と 分類名2.

のように表示されます。

「と」という区切り文字には胸いっぱいの違和感を感じるので、今後の改善に期待です^^;

パラメータを指定できますが使い勝手が悪く、まだまだ the_category() ほど安易に使えるタグではありません。

参考:英語版Codex http://codex.wordpress.org/Function_Reference/the_taxonomies

2. Get the Term List関数を使う

タクソノミー情報を表示する際、より一般的に使われているのは get_the_term_list関数です。

必要な情報を簡単に”表示”できるテンプレートタグと違い、この関数は取得した情報をechoで表示する必要があり、非プログラマの僕らには恐怖感がありますよね・・・

<?php echo get_the_term_list( $post->ID, 'taxonomy-name', '分類:', ', ', '' ); ?>

ループ内で使用する時も手動で「投稿ID」を指定しなければいけません。怖い、怖い・・・
ループ内で使用する際は1つめのパラメータに「$post->ID」といれましょう。

2つめのパラメータはタクソノミー名を入力します。

3つめのパラメータは「リスト直前のテキスト」です。

4つめのパラメータは「区切り文字」です。

5つめのパラメータは「リスト直後のテキスト」です。

動作はまさに the_category() のタクソノミー版なので、このコードは覚えておきましょう。

3. Get the Terms関数を使う

先ほどの get_the_term_list() はリンク付きリストを出力する関数です。

対して get_the_terms() は、タクソノミー情報を取り出し、それを自由に出力することができます。

<?php 
$terms = get_the_terms($post->ID, 'taxonomy-name');
foreach ($terms as $term) : ?>
  	
	<?php echo $term->name; ?>, 

<?php endforeach; ?>

上記コードでは、その投稿が属するタクソノミー名が全てリンク無しで表示されます。
2行目の「taxonomy-name」の箇所は、実際のタクソノミー名に変えてください。

タクソノミーはカテゴリーなどと異なる使い方をするケースが多いので、「タクソノミーアーカイブへのリンクは不要」という際にこのコードを使用しましょう。

関連記事