【WordPress】投稿のカテゴリー・タグを取得し表示する例(リンク付き)

WordPressでサイトを制作していると、現在の投稿に設定しているカテゴリーやタグの名前をリンク付きで投稿内に表示したい場合があると思います。

今回は、そのような場合に使用できるソースコードの例となります。

投稿のカテゴリーを取得・表示|get_the_category()

テンプレートタグのget_the_category()は、現在の投稿に設定されているカテゴリーのオブジェクトを取得します。

また、引数に投稿IDを指定しループ外で利用すると、指定した投稿に設定されているカテゴリーのオブジェクトを取得します。

今回の例では、そのget_the_category()を使い投稿のカテゴリーを取得し表示します。

先頭のカテゴリーを表示する例

現在の投稿に設定している先頭のカテゴリーのみを、リンク付きで表示する例となります。

また、カテゴリーの先頭は、get_the_category()で最初に取得したカテゴリーとなります。

<?php 
$categories = get_the_category(); 
if( $categories ){
	echo '<a href="' . get_category_link( $categories[0]->term_id ) . '">' . $categories[0]->name . '</a>';
}
?>

カテゴリー一覧を表示する例

現在の投稿に設定しているカテゴリー一覧を、リンク付きで表示する例となります。

<?php
$categories = get_the_category();
if( $categories ){
	echo '<ul class="category-list">';
	foreach( $categories as $category ){
		echo '<li><a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a></li>';
	}
	echo '</ul>';
}
?>

上記の2つ例では、get_the_category()から、カテゴリー ID(term_id)とカテゴリー名(name)を取得し、投稿に設定されているカテゴリーをリンク付きで表示しています。出力するリンク先はカテゴリーのアーカイブページとなります。

最初の例では、get_the_category()で最初に取得したカテゴリーのみを表示し、2つ目の例では、取得したすべてのカテゴリーをforeachループを使用し表示しています。

get_the_category()の他の戻り値など、詳細は文末の参考サイトを確認してみてください。

子カテゴリーのみ・親カテゴリーのみを表示する場合

現在の投稿に設定している子カテゴリーのみ・親カテゴリーのみを取得し表示する例については、以下のリンク先を参考にしてみてください。

投稿のタグを取得・表示|get_the_tags()

テンプレートタグのget_the_tags()は、現在の投稿に設定されているタグのオブジェクトを取得します。

また、引数に投稿IDを指定しループ外で利用すると、指定した投稿に設定されているタグのオブジェクトを取得します。

タグ一覧を表示する例

現在の投稿に設定しているタグ一覧を、リンク付きで表示する例となります。

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

上記の例では、foreachループを使用し、get_the_tags()から、タグID(term_id)とタグ名(name)を取得して、投稿に設定されているタグ一覧をリンク付きで表示しています。出力するリンク先はそれぞれのタグのアーカイブページとなります。

get_the_tags()の他の戻り値など、詳細は文末の参考サイトを確認してみてください。

サイト内の「カテゴリー一覧」「タグ一覧」を取得する場合

サイト内で使用されているすべてのカテゴリー一覧・タグ一覧を取得したい場合は、以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。