WordPressの投稿が属するカテゴリーを取得したい時は、「get_the_category_list()」を使えば、リンク付きで表示してくれるので、重宝してます。
Codexでは下記の通り。
<?php get_the_category_list( $separator, $parents, $post_id );?>
- $separator
複数のカテゴリーを持っている時の区切り文字です。
空欄にすると「post-categories」のクラスの付いたリスト形式で表示されます。 - $parents
親カテゴリの表示方法を指定できます。 - $post_id
取得する投稿のIDです。指定するとその投稿IDのカテゴリを表示します。
多分、区切り文字の指定だけしてあげれば問題ないはずです。
カンマ区切り
<?php echo get_the_category_list(',');?>
<a href="カテゴリのリンク" rel="category tag">カテゴリ</a>,<a href="カテゴリのリンク" rel="category tag">カテゴリ</a>
半角スペース区切り
<?php echo get_the_category_list(' ');?>
<a href="カテゴリのリンク" rel="category tag">カテゴリ</a> <a href="カテゴリのリンク" rel="category tag">カテゴリ</a>
spanで囲む
<?php echo '<span>'.get_the_category_list('</span><span>').'</span>';?>
<span><a href="カテゴリのリンク" rel="category tag">カテゴリ</a></span><span><a href="カテゴリのリンク" rel="category tag">カテゴリ</a></span>
タグの場合はget_the_tag_list()を使う
<?php $tag_list = get_the_tag_list( $before, $sep, $after );?>
「get_the_category_list()」と似ていますが、パラメーターが少し違います。
- $before
前に入れるテキスト。 - $sep
タグを区切る文字列。 - $after
後に入れるテキスト。を表示します。
「get_the_category_list()」と同じように、区切り文字の指定だけしてあげれば、いい感じで表示できます。
カンマ区切り
<?php echo get_the_tag_list('',',','');?>
<a href="タグのリンク" rel="category tag">タグ</a>,<a href="タグのリンク" rel="category tag">タグ</a>
半角スペース区切り
<?php echo get_the_tag_list('',' ','');?>
<a href="タグのリンク" rel="category tag">タグ</a> <a href="タグのリンク" rel="category tag">タグ</a>
リスト形式で表示
<?php echo get_the_category_list('<ul><li>','</li><li>','</li></ul>');?>
<?php echo '<ul><li>'.get_the_category_list('','</li><li>','').'</li></ul>';?>
<ul>
<li><a href="タグのリンク" rel="category tag">タグ</a></li>
<li><a href="タグのリンク" rel="category tag">タグ</a></li>
</ul>
補足
「get_the_category_list()」のパラメーターの説明を少ししておこうかなと思います。
$separator
空欄にすると「post-categories」のクラスの付いたリスト形式で表示されます。
<ul class="post-categories">
<li>
<a href="カテゴリのリンク" rel="category tag">カテゴリ</a>
</li>
</ul>
リスト形式で表示されるとデザインを整えるのに、ひと手間かかるので、区切り文字をいれてしまう方が楽ですね。
$parents
自動で親カテゴリを表示してくれます。
‘multiple’を指定すると、リンク付きの親カテゴリも表示します。
<a href="親カテゴリへのリンク">親カテゴリ</a>
<a href="子カテゴリへのリンク">子カテゴリ</a>
‘single’を指定すると、リンク先は子カテゴリで親カテゴリを含んで表します。
<a href="子カテゴリへのリンク">親カテゴリ子カテゴリ</a>
一見、便利な気がしますが、意外と使わないかもしれません。
子カテゴリしか選択してない時はいいですが、親カテゴリも選択していると、親カテゴリが重複して表示されるので、よろしくありません。
子カテゴリしか選択してない
multiple
<a href="親カテゴリへのリンク">親カテゴリ</a>
<a href="子カテゴリへのリンク">子カテゴリ</a>
single
<a href="子カテゴリへのリンク">親カテゴリ子カテゴリ</a>
親カテゴリも選択してる
multiple
<a href="親カテゴリへのリンク">親カテゴリ</a>
<a href="親カテゴリへのリンク">親カテゴリ</a>
<a href="子カテゴリへのリンク">子カテゴリ</a>
single
<a href="親カテゴリへのリンク">親カテゴリ</a>
<a href="子カテゴリへのリンク">親カテゴリ子カテゴリ</a>
運用のルールを決めて使えば便利な気がしますが、多分使わないだろうな。