Mill's Note

【Wordpress関数】get_the_category_list()

/

投稿に紐づいた全てのカテゴリーを、リンク付きのリスト形式で出力できるWordpressテンプレートタグ。
セパレータ変更も可能。

投稿IDを指定することでループ外でも使用できるので、親を持たないカテゴリーのみでループ外で簡単に表示したい場合に。

癖があるので、ループ内なら the_category() 、ループ外なら get_the_category() など、他の関数の検討をお勧めします 。

get_the_category_list()の問題点

親も書き出せるようにはなってますが、、

  • 出力は親子階層にならず出力順の指定もできない為、親子の順序が逆になる事があります。
  • 親カテを持つ場合 'single' を指定すると、親子のカテゴリ名を繋げて出力されます。
    ( 親CSS, 子Tips の場合 → 出力名は CSSTips )

使用する場合は、紐づいたカテゴリーが 親を持たない(第一階層のみ) をお勧めします。

この辺りが修正されると、結構便利だと思うのですが。。。

get_the_category_list() 呼び出しコード

PHP
<?php echo get_the_category_list(); ?>
<?php echo get_the_category_list(セパレータ, 親カテゴリー, 投稿ID); ?>

パラメータ

設定箇所初期値指定可能パラメータ説明
セパレータ‘ <ul><li>リスト任意のセパレータ
親カテゴリー‘multiple’'multiple','single''multiple'→ 親カテゴリーも出力
'single'→ 紐づいたカテゴリーのみ (親カテゴリー未出力)
投稿ID現在の投稿取得したい投稿のID投稿IDを指定する事でループ外にも設置可

get_the_category_list() の使用例

紐づいているのは第一階層カテゴリのみ、を前提としています。

パラメータ無し

PHP
<?php echo get_the_category_list(); ?>
/* 出力結果 ------------------ */
<ul class="post-categories">
  <li><a href="紐づいたカテゴリーURL" rel="category tag">紐づいたカテゴリー名</a></li>
  <li><a href="紐づいたカテゴリーURL" rel="category tag">紐づいたカテゴリー名</a></li>
</ul>

リストを <span></span> で囲う

PHP
<span><?php echo get_the_category_list('</span><span>'); ?></span>
/* 出力結果 ------------------ */
<span><a href="紐づいたカテゴリーURL" rel="category tag">紐づいたカテゴリー名</a></span>
<span><a href="紐づいたカテゴリーURL" rel="category tag">紐づいたカテゴリー名</a></span> 

参考サイト