読者です 読者をやめる 読者になる 読者になる

かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

WordPress カスタム投稿 taxonomyアーカイブページのterm取得したい。

WprdPress独特の言い回しなのでしょうか?このtaxonomyとtermが何なのかよく分からなくなってしまいます。

  • taxonomy は「投稿 (post )」で言うところのカテゴリー
  • term は「投稿 (post )」で言うところのカテゴリーに追加した1つ1つのカテゴリー
カテゴリー ... taxonomy 
  |- 未登録  ... term ( term->name = 未登録 )
  |- ブログ ...  term ( term->name = ブログ )

こんな感じの認識ですかね。

で、本題です。
カスタム投稿のタクソノミーページ(taxonomy.php)、所謂カテゴリーページで特定のカテゴリー(term)が指定されている時、このタクソノミーページで指定されているカテゴリー名(term)が何なのか取得したい時のメモです。(日本語難しいね...)

$wp_query->queried_object で取得できる

globalオブジェクトの $wp_query にはtermが何か含まれているとは思っていましたが、$wp_query->queried_objectで取得できるようです。

<?php // taxonomy.php
$term = $wp_query->queried_object;
var_dump($term);

// term名を出力
echo esc_attr( $term->name );

わざわざテンプレート内で、get_terms()でタクソノミーのtermを全て取ってきてループで回してis_tax() でチェックするとかメンドーな事しなくても良さそうです。
個人的にグローバルオブジェクトから関数ではなく、直接値にアクセスするのちょっとな...とも感じます。関数あるのでしょうかね?


[参考]

一歩先にいくWordPressのカスタマイズがわかる本

一歩先にいくWordPressのカスタマイズがわかる本