カスタム投稿タイプでタクソノミーを取得したいとき、名前が似ていてよく忘れるのでまとめです。
基本的な情報はこのような形です。
「タクソノミー」・・・custom_cat
「ターム」・・・ブラジル(burazil)、ID->14
____サントス(santos)、ID->17
_____サンパウロ(sanpauro)、ID->21
「カスタム投稿タイプ」・・・ID->77、ブラジル、サントスのタクソノミー持ち
get_the_terms
指定された投稿IDに紐づいている指定されたタクソノミーのタームを返します。
get_the_terms( $id, $taxonomy );
get_the_terms(77,'custom_cat');
array(2) {
[0]=>
object(WP_Term)#358 (11) {
["term_id"]=>
int(14)
["name"]=>
string(12) "ブラジル"
["slug"]=>
string(6) "brazil"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(14)
["taxonomy"]=>
string(10) "custom_cat"
["description"]=>
string(0) ""
["parent"]=>
int(0)
["count"]=>
int(2)
["filter"]=>
string(3) "raw"
["term_order"]=>
string(1) "0"
}
[1]=>
object(WP_Term)#359 (11) {
["term_id"]=>
int(17)
["name"]=>
string(12) "サントス"
["slug"]=>
string(6) "santos"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(17)
["taxonomy"]=>
string(10) "custom_cat"
["description"]=>
string(0) ""
["parent"]=>
int(14)
["count"]=>
int(1)
["filter"]=>
string(3) "raw"
["term_order"]=>
float(0.1)
}
}
get_term_children
指定されたタクソノミ-に紐づいた指定されたタームIDの子タームのIDを配列で返します。
get_term_children( $term_id, $taxonomy );
get_term_children(14,'custom_cat');
array(2) {
[0]=>
int(17)
[1]=>
int(21)
}
get_term_link
指定されたタームのアーカイブページのリンクを返します。
get_term_link( $term, $taxonomy );
get_term_link('brazil','custom_cat');
string(39) "http://sample.local/custom-slug/brazil/"
get_terms
指定されたタクソノミー、またはタクソノミーリストに含まれるタームを返します。
タクソノミーの取得関数の中で一番使用する関数だと思います。
argsにはオプションを指定することができます。そのオプションにより取得するタームをいろいろな条件で絞り込めます。
get_terms( $taxonomies, $args );
get_terms('custom_cat',['parent' => 14]);
array(2) {
[0]=>
object(WP_Term)#4289 (11) {
["term_id"]=>
int(17)
["name"]=>
string(12) "サントス"
["slug"]=>
string(6) "santos"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(17)
["taxonomy"]=>
string(10) "custom_cat"
["description"]=>
string(0) ""
["parent"]=>
int(14)
["count"]=>
int(1)
["filter"]=>
string(3) "raw"
["term_order"]=>
float(0.1001)
}
[1]=>
object(WP_Term)#4287 (11) {
["term_id"]=>
int(21)
["name"]=>
string(15) "サンパウロ"
["slug"]=>
string(7) "sanpuro"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(21)
["taxonomy"]=>
string(10) "custom_cat"
["description"]=>
string(0) ""
["parent"]=>
int(14)
["count"]=>
int(1)
["filter"]=>
string(3) "raw"
["term_order"]=>
float(0.10011)
}
}