投稿記事に属するカテゴリーを表示する色々な方法

投稿へ付けたカテゴリーを表示する色々な方法です。

【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 同じカテゴリーが付いている投稿の数
ネットショップ向けWooCommerce対応WordPressテーマ「Japacart(ジャパカート)」

本サイトの内容に誤りや不正確な記述がある場合やサンプルに基づくいかなる結果も一切の責任を負いかねますので、あらかじめご了承ください。

ネットショップ向けWooCommerce対応WordPressテーマ「Japacart(ジャパカート)」
Copyright © WPスイッチ All Rights Reserved.