お久しぶりの投稿です。
この記事ではTopページや投稿記事内でカテゴリーを取得したい場合に使うタグの説明をします。
Topページや投稿記事内でのカテゴリーの取得
カテゴリーをリンク付きで取得するのかリンクなしで取得するのか、はたまた一つなのか複数なのかいろんな状況があるわけです。
状況に応じて使う関数も異なります。
the_category()
the_category()はリンク付き+カテゴリーを全て取得します。
<?php the_category(); ?>
吐き出されるhtmlがコチラ
<ul class="post-categories">
<li>
<a href="url/category/カテゴリーのスラッグ/" rel="category tag">カテゴリー名A</a>
</li>
</ul>
その投稿に紐づけられたカテゴリー名をリンク付きで全て取得します。
注意としましてはループ内で使用する必要があります。
具体的な例
<?php the_category(); ?>
また( )に’, ‘を入れるとカンマで区切ることができる。
<?php the_category(','); ?>
(‘ ‘)カンマ以外にも/ なども入れられます。
またそれぞれ指定すればスタイリングもできます。
.post-categories{
display: flex;
flex-wrap: wrap;
margin-top: 12px;
}
.post-categories li {
margin-right: 8px;
margin-top: 4px;
}
.post-categories li a {
font-size: 12px;
border: 1px solid #ddd;
padding: 4px 6px;
display: inline-block;
}
get_the_category()
リンクなしカテゴリー +一つのカテゴリーを取得
リンクなしのカテゴリー名を取得する場合はコチラ
<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?>
囲ってクラス名を付ければ自由にスタイリングができる
具体的な使用例
今回は都合上spanタグで囲っておりますがもちろんpタグとかでも大丈夫です。
<span class="category-label"><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?></span>
.category-label{
font-size: 12px;
display: inline-block;
border: 1px solid #ddd;
padding: 4px 6px;
}
リンクなし+一つだけであればスタイリングも簡単なのでこちらを使う方が楽。
またこちらはリンクなし+複数カテゴリーの取得もできる
<?php
$cats = get_the_category();
foreach($cats as $cat) {
echo '<span>'. $cat->name .'</span>';
}
?>
具体的な使用例
<?php
$cats = get_the_category();
foreach($cats as $cat) {
echo '<span class="category-label">'. $cat->name .'</span>';
}
?>
リンクなしのカテゴリーを取得する場合はget_the_category()を使うのが良いかと思います。
get_categories( )
こちらは投稿に付けられているカテゴリーではなくサイトで使用されているカテゴリーを取得することができます。
参考までに
<ul>
<?php $cats = get_categories(); ?>
<?php foreach( $cats as $cat ) : ?>
<li><a href="<?php echo get_category_link( $cat->term_id ); ?>"><?php echo $cat->name; ?></a></li>
<?php endforeach; ?>
</ul>
まとめ
リンク付き
<?php the_category(); ?>
リンクなし
一つの場合
<span><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?></span>
複数の場合
<?php
$cats = get_the_category();
foreach($cats as $cat) {
echo '<span>'. $cat->name .'</span>';
}
?>
デザイン性のみのラベルを作成するならget_the_category()を使う方が良いですね!
またカテゴリーに関するものはまだこれからも追記していく予定ですのでお待ちください。
コメント