WordPressの関数を少しずつまとめていきます。
今回は、カテゴリーの情報を出力する関数「the_category」です。
基本的な使い方
カテゴリーの情報を出力する関数です。
WordPressループ(メインループ)の中で使います。
パラメータ | (1)セパレータ・区切り文字、(2)親カテゴリー名を出力、(3)投稿IDの指定 |
戻り値 | 無し |
利用箇所 | WordPressループ内 |
通常はパラメータを指定せずに以下のように書きます。
<?php the_category(); ?>
以下のように出力されます。
ul要素で表示されます。
<ul class="post-categories">
<li><a href="カテゴリーアーカイブページのURL" rel="category tag">カテゴリー名○○</a></li>
<li><a href="カテゴリーアーカイブページのURL" rel="category tag">カテゴリー名△△</a></li>
</ul>
例
基本的なWordPressループ内での使い方
<?php if (have_posts()): ?>
<?php while (have_posts()) : the_post(); ?>
個々の投稿を出力する処理
<?php the_category(); ?>
<?php endwhile; ?>
投稿一覧を出力した後に行う処理
<?php else: ?>
投稿が無い時の処理
<?php endif; ?>
the_category 関数の応用:個々のカテゴリーを区切る文字を指定
1つ目のパラメータとして、個々のカテゴリーを区切る文字を指定することが可能です。
この場合、ul要素では出力されません。
また、カテゴリーが一つの場合は区切り文字は表示されません。
例1
カテゴリーをコンマで区切る
<?php the_category(', '); ?>
出力例
<a href="カテゴリーアーカイブページのURL" rel="category tag">カテゴリー名○○</a>, <a href="カテゴリーアーカイブページのURL" rel="category tag">カテゴリー名△△</a>
例2
カテゴリーを矢印で区切る
<?php the_category(' > '); ?>
出力例
<a href="カテゴリーアーカイブページのURL" rel="category tag">カテゴリー名○○</a> > <a href="カテゴリーアーカイブページのURL" rel="category tag">カテゴリー名△△</a>
the_category 関数の応用:親カテゴリー名を出力
階層化されたカテゴリーを表示することも可能です。
最上位以外のカテゴリーを割り当てた場合、最上位からそのカテゴリーまでの全てのカテゴリーを出力します。
2つ目のパラメータに「multiple」又は「single」を渡します。
<?php the_category(' ' , 'multiple'); ?>
<?php the_category(' ' , 'single'); ?>
パラメータに「multiple」を指定する場合。
投稿が属するカテゴリー以外に、その上位カテゴリーもリンク付きで出力します。
例3
カテゴリーは「親カテゴリー」>「子カテゴリー」>「孫カテゴリー」の階層構造。
投稿は「孫カテゴリー」に属している。
<?php the_category(', ' , 'multiple'); ?>
出力例
<a href="親カテゴリーアーカイブページのURL">親カテゴリー</a>, <a href="子カテゴリーアーカイブページのURL">子カテゴリー</a>, <a href="孫カテゴリーアーカイブページのURL" rel="category tag">孫カテゴリー</a>
パラメータに「single」を指定する場合。
投稿が属するカテゴリーと、その上位カテゴリーを区切り文字で挟み、全体を投稿が属するカテゴリーアーカイブページにリンクします。
例4
カテゴリーは「親カテゴリー」>「子カテゴリー」>「孫カテゴリー」の階層構造。
投稿は「孫カテゴリー」に属している。
<?php the_category(', ' , 'single'); ?>
出力例
<a href="孫カテゴリーアーカイブページのURL" rel="category tag">親カテゴリー, 子カテゴリー, 孫カテゴリー</a>
the_category 関数の応用:投稿IDの指定
投稿記事のIDを指定することも可能です。
3つ目のパラメータに投稿記事のIDを渡すと、そのIDの記事が属するカテゴリーが出力されます
ただし、通常はこのパラメータは省略されることが多いです。
例5
投稿ID「150」の記事が属するカテゴリーを出力
<?php the_category('' , '' , '150'); ?>