カテゴリーページでのタームの情報取得

カテゴリーページでのタームの情報取得
Image by Boskampi from Pixabay

2020.11.24(更新日:2020.12.11)

一般的に一覧ページで使用するカテゴリー(テンプレートで言えばcategory.php)での情報取得。
名前はカテゴリーだが種別名?としては「タクソノミー」。つまり「カテゴリーと言う名のタクソノミー」。
そのカテゴリーの中でそれぞれグループ化(分類)されたものが「ターム」とちょっとややっこしい。
元々タクソノミーはカテゴリーだけだったので、大多数のサイトではカテゴリーのタームを「カテゴリー」とし紹介しているようだ。(調べれば調べるほど訳わからず)
カスタムタクソノミー同じ類だが、改めて別ページにて紹介予定。

この記事は1年以上経過しています。内容的に古い場合があります。

現在のカテゴリーページで使われているタームのID取得

カテゴリーページで使用しているタームIDを取得。他のサイトだと「カテゴリーID」と紹介されているのが多い様子。個人的にゴチャゴチャ感が否めないので、このサイトではタームとする。

$term_id = get_query_var( 'cat' );
//または
$term_id = get_queried_object_id();

現在のカテゴリーページで使われているタームのスラッグ取得

カテゴリーページ(category.php)で使用しているタームのスラッグを取得。slugでないのがややっこしい。

$term_slug = get_query_var( 'category_name' );

現在のカテゴリーページで使われているターム名取得

引数に何も入れなければ表示、第1引数に文字を入れればタイトルの前に出力する。

//即表示する場合
single_term_title(); 
//PHP値として取得の場合は第2引数をfalse
$term_title = single_term_title('', false);

まとめて情報が欲しい場合

get_queried_objectで取得。この関数は他のページでも使えるが、使うページで返り値が変わるので注意。

$terms = get_queried_object();

//以下取得可能
$terms->term_id //タームID
$terms->name //タームの名前
$terms->slug //タームスラッグ
$terms->taxonomy //タクソノミースラッグ
$terms->parent //親子関係がある場合このタームの親ID(ない場合は0)
$terms->count //タームに属する投稿の数
//他にもあるけど多分使うのはこれくらい

タームIDが分かるならば以下でも同じ情報は取得可能。カテゴリーがなかった場合WP_Errorが返り値。

$terms = get_category($term_id);