【wordpress】通常の投稿(デフォルト機能)でのカテゴリーの取得&出力

wordpress

※ 当サイトではアフィリエイト広告を利用しています。

こんにちは、meiです。
今回はワードプレスでカテゴリーを取得・表示するときに使う関数を整理してみようと思います。
…私自身が混乱してしまうから、なんですけど…
ご参考いただければ幸いです。

ループ内の場合

カテゴリーをひとつだけ表示させる場合(リンク無し)

get_the_category()を使用し、配列で格納されている一番最初のものを出力します。

<?php
  $category = get_the_category();
  $cat_name = $category[0]->cat_name;   //カテゴリー名取得
  $cat_slug = $category[0]->category_nicename; //スラッグ取得
?>

<div class="category">
<?php echo $cat_name; ?>
</div>

カテゴリーをひとつだけ表示させる場合(リンク有り)

リンクを出力するときにはget_category_link()を使用します。

<?php
        $category = get_the_category();
        $cat_name = $category[0]->cat_name;   //カテゴリー名取得
      ?>

      <div class="category">
      <a href="<?php echo get_category_link($category[0]->term_id); ?>"><?php echo $cat_name; ?></a>
      </div>

カテゴリーを複数表示させる場合(リンク無し)

同じくget_the_category()を使用し、配列で格納されているすべてのデータを出力します。

<?php
$categories = get_the_category();
if ( $categories ) {
	echo '<ul>';
	foreach ( $categories as $category ) {
		echo '<li>'.$category->name.'</li>';
	}
	echo '</ul>';
}
?>

カテゴリーを複数表示させる場合(リンク有り)

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

ループ外の場合

ループ外の場合もループ内と同様get_the_categoryを使えますが、引数に投稿のIDを渡す必要があります。

まとめ

今回はカテゴリーを取得・表示するときに使う関数についてでした。

今回取り上げたget_the_categoryだけではなく、the_categoryもループ内でカテゴリーを出力するのに使えるのですが、the_categoryは自動的にカテゴリーアーカイブページのリンク先のついたリストの形になって出力されるので、使いどころによっては少々困ることが出てきます。
いろいろ使い分けていきたいところです。

wordpress
スポンサーリンク
Web Parts Box
タイトルとURLをコピーしました