投稿記事に属するカテゴリーを表示する色々な方法
【the_category】で表示する
リンク付きのリストを表示する
ループ内で使用します。
the_categoryは自動的にリンクが追加されます。
以下は半角スペース区切りで出力するソース例です。
リンク無しにする場合は、【get_the_category】を使用します。
single.phpやindex.php、archive.php等
<?php the_category(' '); ?>
HTMLでの表示結果
<a href="http://example.com/category/cat1">カテゴリー1</a> <a href="http://example.com/category/cat2">カテゴリー2</a>
リスト表示にする
the_categoryはデフォルトでリスト表示になります。
ただし、ulに自動的にWordPressで用意されているクラス名(post-categories)が付与されます。
任意のクラス名にするには【get_the_category】を使います。
single.phpやindex.php、archive.php等
<?php the_category(); ?>
HTMLでの表示結果
<ul class="post-categories"> <li><a href="http://example.com/category/cat1" rel="category tag">カテゴリー1</a></li> <li><a href="http://example.com/category/cat1" rel="category tag">カテゴリー2</a></li> </ul>
【get_the_category】で表示する
細かな指定をして出力したい場合はthe_categoryよりget_the_categoryが便利です。
リンク無しのリストを表示する
single.phpやindex.php、archive.php等
<?php $categories = get_the_category(); if ( $categories ) { echo '<ul>'; foreach ( $categories as $category ) { echo '<li>'.$category->name.'</li>'; } echo '</ul>'; } ?>
HTMLでの表示結果
<ul> <li>カテゴリー1</li> <li>カテゴリー2</li> <li>カテゴリー3</li> </ul>
リンク付きのリストを表示する
URL(カテゴリーアーカイブページへのリンク)を取得するにはget_category_linkと組み合わせて記述します。
single.phpやindex.php、archive.php等
<?php $categories = get_the_category(); if ( $categories ) { echo '<ul>'; foreach ( $categories as $category ) { echo '<li><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>'; } echo '</ul>'; } ?>
HTMLでの表示結果
<ul> <li><a href="http://example.com/category/cat1">カテゴリー1</a></li> <li><a href="http://example.com/category/cat2">カテゴリー2</a></li> </ul>
カテゴリースラッグをクラス名にしたリストを表示する(CSSでカテゴリーを色分けするのに便利!)
URL(カテゴリーアーカイブページへのリンク)を取得するにはget_category_linkと組み合わせて記述します。
single.phpやindex.php、archive.php等
<?php $categories = get_the_category(); if ( $categories ) { echo '<ul>'; foreach ( $categories as $category ) { echo '<li class="'.$category->slug.'"><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>'; } echo '</ul>'; } ?>
HTMLでの表示結果
<ul> <li class="cat1"><a href="http://example.com/category/cat1">カテゴリー1</a></li> <li class="cat1"><a href="http://example.com/category/cat1">カテゴリー2</a></li> </ul>
【オマケ】カテゴリーを最初の1つだけ表示
複数のカテゴリーに属している場合でも、最初の1つだけしか表示させないケース、例えばパンくずに使用する場合等は複数より1つだけの方が都合が良い場合があるでしょう。
その場合は、配列の一番目[0]のカテゴリーを取り出します。
リンク無し
single.phpやindex.php、archive.php等
<?php $categories = get_the_category(); if ( $categories ) { echo $categories[0]->name; } ?>
HTMLでの表示結果
カテゴリー1
リンク付き
single.phpやindex.php、archive.php等
<?php $categories = get_the_category(); if ( $categories ) { echo '<a href="'.esc_url(get_category_link( $categories[0]->term_id )).'">'.$categories[0]->name.'</a>'; } ?>
HTMLでの表示結果
<a href="http://example.com/category/cat1">カテゴリー1</a>
【get_the_category】の主なオブジェクトメンバー
term_id | ID |
---|---|
cat_ID | ID(term_id にも同じ値が入る)※どちらを使用してもOKだと思います。 |
name | カテゴリー名 |
slug | スラッグ |
description | 説明 |
parent | 親カテゴリーの ID |
count | 同じカテゴリーが付いている投稿の数 |
本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。