WordPress : カテゴリーアーカイブページでカテゴリースラッグを確実に取得する

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 を使えば他のタグでは取得しにくい「今開いているカテゴリー」の情報を取得できます。

他は以下サイトで紹介されている値を取得できます。