WordPressでカテゴリースラッグを取得するなら以下のような書き方がメジャーです。
<?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?>
…ですが、今回説明したいのはこれではありません!
get_the_category()
は投稿のカテゴリー情報を取得するものであって、カテゴリー側の情報を取得するものではありません。
そのため、「投稿が無いカテゴリー」のカテゴリーアーカイブページで上記のコードは効きません。
WordPressをカスタマイズする人なら「カテゴリーの所属している記事の情報」じゃなく、「カテゴリー自体の情報」を取得したいんだ!と嘆いた人は多いと思います。
確実にカテゴリースラッグを取得する
カテゴリーアーカイブを開いている時、投稿側の情報に頼らず直接カテゴリースラッグを取得するコードは以下です。
$category_slug = get_query_var('category_name');
get_query_var
は、WordPressのグローバル変数 $wp_query[query_vars]
にある値を抜き出せる関数です。 get_query_var
を使えば他のタグでは取得しにくい「今開いているカテゴリー」の情報を取得できます。
他は以下サイトで紹介されている値を取得できます。