SOFTELメモ

Softel Inc.

【WordPress】現在のカテゴリページが1階層目かどうか知りたい

問題

WordPressで、カテゴリを使って、大分類 > 中分類 > 小分類 ってしてあるんだけど、表示しているページが大分類ページかどうかを知りたい。親カテゴリがあるかないか知りたい。

どうするのが手っ取り早い?

wordpress

答え

めんどくさい検索や関数の組み合わせをしなくても知ることができる。

get_queried_object() という関数がなかなか便利。

投稿のページで実行すると、その投稿が取得できる。
固定ページで実行すると、そのページが取得できる。
カテゴリアーカイブのページで実行すると、そのカテゴリについて取得できる。
など

http://codex.wordpress.org/Function_Reference/get_queried_object

例えばカテゴリページで実行すると、以下のような結果が取得できる。

["parent"] => "11" とのことなので、親カテゴリがある。1階層目ではない。

object(stdClass)#1906 (15) {
  ["term_id"]=>
  &string(3) "125"
  ["name"]=>
  &string(12) "ある中分類"
  ["slug"]=>
  &string(7) "xxxslugxxx"
  ["term_group"]=>
  string(1) "0"
  ["term_taxonomy_id"]=>
  string(3) "125"
  ["taxonomy"]=>
  string(8) "category"
  ["description"]=>
  &string(0) ""
  ["parent"]=>
  &string(2) "11"
  ["count"]=>
  &string(2) "81"
  ["cat_ID"]=>
  &string(3) "125"
  ["category_count"]=>
  &string(2) "81"
  ["category_description"]=>
  &string(0) ""
  ["cat_name"]=>
  &string(12) "ある中分類"
  ["category_nicename"]=>
  &string(7) "xxxslugxxx"
  ["category_parent"]=>
  &string(2) "11"
}

$wp_query->get_queried_object(); と同じこと(ラッパー)で、$wp_query->queried_object; でも一応取れるみたいです。

関連するメモ

コメント