【WordPress】投稿ページ内で投稿に紐づいたカテゴリーやタグの情報を取得して表示する

迷える黒猫くん
迷える黒猫くん

投稿ページにおいて、そのカテゴリーのタームを出力したいニャ

前回までの記事でカテゴリーやタグ、カスタムタクソノミーの一覧を取得する方法を解説しました。


今回は投稿の個別ページ内で、その投稿に紐づいたカテゴリーやタグ、カスタムタクソノミーのタームを取得したい場合にどうするかを解説します。

具体的には当ブログの記事の最後ににある以下のような個所を想定しています。

だいたいカテゴリーは一つ、タグは所属しているものが全て表示されているケースが多いかと思います。

カテゴリーの取得

get_the_category()

現在の投稿のカテゴリーオブジェクトを取得するには「get_the_category()」を使います。以前カテゴリーの一覧を取得するときに使用した「get_categories()」に似ていますね。

<?php
$cats = get_the_category();
$cat = $cats[0];
$cat_id = $cat->cat_ID;
$cat_slug = $cat->slug;
$cat_name = $cat->name;
?>
<?php
if ($cats) {
    echo '<p><a href="' . get_category_link($cat_id) . '"><span class="' . $cat_slug . '">' . $cat_name . '</span></a></p>';
}
?>

こちらでその投稿ページが属しているカテゴリーを配列で取得して、その一番目のターム情報を$cats[0]で取得し、そのタームの一覧ページへのリンク付きで表示させています。

タグの取得

get_the_tags()

現在の投稿のカテゴリーオブジェクトを取得するには「get_the_tags()」を使います。こちらもカテゴリー同様以前の記事でタグの一覧を取得するときに使った「get_tags()」に似ていますね。使い方もほぼ同じです。

<?php
$tags = get_the_tags();
if( $tags ){
	echo '<ul class="tag-list">';
	foreach ( $tags as $tag ) {
		echo '<li><a href="' . get_tag_link( $tag->term_id ) . '">' . $tag->name . '</a></li>';
	}
	echo '</ul>';
}
?>

こちらでタグがあればリンク付きのタグをリスト形式で吐き出すことができます。

どちらも基本的にループの中で使用します。

コメント

タイトルとURLをコピーしました