waka8*stakes

〜馬絵+林檎+Wordpress〜

カスタムタクソノミーをカテゴリーみたいにシングルページに出力

<?php the_taxonomies(); ?>

上記のテンプレートタグで記事が属するタクソノミー全てとそれぞれのタームに属する記事のアーカイブページへのリンクを出力できます。しかし…

the_taxonomies()でタクソノミーを表示

『そして』って(笑)
英語のandがそのまま訳されたんでしょう。この『そして』を消してもっと格好良く表示できないものかと思い、google先生に聞いてみました。

カスタムタクソノミーをシングルページで表示する時のあれこれ – Varl.jp にて詳しく解説されていたのを見て真似してみたら上手く行きました。

get_the_terms()を使うのがいいみたいです。

使い方は

<?php echo get_the_term_list( $id, $taxonomy, $before, $sep, $after ); ?>
パラメータの中身は
$id = 投稿ID。シングルページで投稿IDを取得するには $post->ID を使う。
$taxonomy = ターム(既存のタクソノミー『カテゴリー』で例えると各カテゴリー名)の名前
$before = 最初に表示する文字等(HTMLタグも使用可能)
$sep = タームとタームの間の区切り文字(HTMLタグも使用可能)
$after = リストの最後に表示する文字等(HTMLタグも使用可能)

例として、ターム”画材(tools)”を表示したい場合はsingle.phpに

<?php echo get_the_term_list( $post->ID, 'tools', '<p>[画材]', ',', '</p>' ) ?>

と記述します。

出力されるHTMLソースは

<p><[画材]a href="http://example.com/tools/colorpencil" rel="colorpencil">色鉛筆</a>,<a href="http://example.com/tools/ballpen" rel="ballpen">ボールペン</a></p>

の様になります。シングルページには

[画材]色鉛筆,ボールペン

と表示されます。

$before<ul><li>$sep</li><li>$after</li></ul>を入れるとリスト化できます。