[wp]現在の記事の親子タームを取得する方法

登録したタームで表示とかを振り分けたいときの。小ネタ。

上手くまとめられないので具体例

タクソノミー:person
性別
 ├ 男
 └ 女

こんな感じで親子のタームを作っていて、記事によってどちらかを登録したとする。

「男」だったらこれ、「女」だったらこれ、みたいな感じでタームによって表示するものを変えたい場合、記事に登録してあるタームを取得して条件分岐にかける必要がある。親子だし、どうすんだよって話。

作例

上記の形でやっていくとして。

$check = wp_get_object_terms($post->ID, 'person')[1];
if($check->name == '男'):
//男の場合
else:
//女の場合
endif;

こう。上記の例では2択なのでifとelseで完結する。増えたらelseifを足す感じ。

注意なんだけど、タームを付けまくってる投稿を相手にするとこんなにシンプルにはいかない。あくまでもこの組み方で通用する構成をカスタム投稿側で取ってないと、めちゃくちゃめんどくさいことになる。なので、これありきの組み方ができないならそもそもタームによる振り分けはあんまりしないほうがいいと思う。

で。

ネックになるのは「wp_get_object_terms」。

wp_get_object_terms
mixed wp_get_object_terms( mixed $object_ids, mixed $taxonomies ) 投稿記事などのタクソノミー情報を取得する。

コメント

タイトルとURLをコピーしました