[WordPress] 個別記事ページでカテゴリーを表示するときの目的別の方法

公開

スポンサーリンク

WordPressで個別記事ページにカテゴリーリストを表示させる方法のメモ。単純なリストで良い場合とこったことをやりたい場合で使う関数が違い、いつもやり方を忘れてしまうのでまとめておく。

get_the_category_list

リスト出力

リスト形式の表示で構わないなら一番手っ取り早いのがget_the_category_list()を使うこと。一番使っている人の多い方法だと思われる。

<?php echo get_the_category_list();?>

以下のhtmlが出力される。

<ul class="post-categories">
 <li><a href="http://..." title="記事タイトルA" rel="category tag">記事タイトルA</a></li>
 <li><a href="http://..." title="記事タイトルB" rel="category tag">記事タイトルB</a></li>
</ul>

リストにIDやClassを指定する

上のやり方ではIDやClassを指定できない。get_the_category_list()は第1引数で区切り文字を指定可能なので、IDやClassを指定したい場合は以下のようにする。

<?php echo '<ul id="cat_list" class="list-inline"><li class="list_class">', get_the_category_list('</li><li class="list_class">'), '</li></ul>';?>

以下のhtmlが出力される。

<ul id="cat_list" class="list-inline">
 <li class="list_class"><a href="http://..." title="記事タイトルA" rel="category tag">記事タイトルA</a></li>
 <li class="list_class"><a href="http://..." title="記事タイトルB" rel="category tag">記事タイトルB</a></li>
</ul>

番号付きリスト出力

get_the_category_list()は第1引数で区切り文字を指定可能なので、例えば番号付きリストでカテゴリーリストを表示したいなら以下のようにする。

<?php echo '<ol><li>', get_the_category_list('</li><li>'), '</li><ol>';?>

以下のhtmlが出力される。

<ol class="post-categories">
 <li><a href="http://..." title="記事タイトルA" rel="category tag">記事タイトルA</a></li>
 <li><a href="http://..." title="記事タイトルB" rel="category tag">記事タイトルB</a></li>
</ol>

get_the_category

以上のようにget_the_category_list()は便利ではあるが、<a>タグの部分をカスタマイズすることはできないし、ちょっと凝ったことをするには向いていない。そこで、そういう時はget_the_category()でカテゴリー情報をオブジェクト形式で取得する。これならカテゴリー表示を好きなようにできる。

例えば, Twitter Bootstrapのラベルを用いたいならこう。

<ul class='list-inline'>
 <?php foreach (get_the_category() as $cat ):?>
 <li><a class='label label-success' href='<?php echo home_url(), '/category/', $cat->slug;?>'><?php echo $cat->name;?></a></li>
 <? endforeach;?>
</ul>

以下のhtmlが出力される。

<ul class="list-inline">
  <li><a class="label label-success" href="http://...">記事タイトルA</a></li>
  <li><a class="label label-success" href="http://...">記事タイトルB</a></li>
</ul>

スポンサーリンク


Comment