※ 当サイトではアフィリエイト広告を利用しています。
こんにちは、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は自動的にカテゴリーアーカイブページのリンク先のついたリストの形になって出力されるので、使いどころによっては少々困ることが出てきます。
いろいろ使い分けていきたいところです。