たとえば、タクソノミースラッグを「genre」、複数形のラベルと単数形のラベルを「ジャンル」として、ジャンル候補として、下記を作った場合。
名前 | スラッグ |
---|---|
ドラマ | drama |
恋愛 | love |
アクション | action |
ホラー | horror |
アニメ | anime |
SF | sf |
ドキュメンタリー | documentary |
サスペンス | suspense |
コメディ | comedy |
タクソノミー の候補一覧を取得する場合
$terms = get_terms('genre');
foreach ($terms as $term) {
echo $term->name; // ドラマ、恋愛、アクション・・・の値を表示する
echo $term->slug; // drama、love、action・・・の値を表示する
}
foreachループ内の処理はよしなに。これでタクソノミーの候補のラベルとスラッグの値を取得できる。
カスタム投稿記事ページで、選択した値のみを取得する場合
たとえば、ある記事で、タクソノミー 「ジャンル」の「アクション」と「コメディ」を選択した場合
$terms = get_the_terms($post->ID, 'genre');
foreach ($terms as $term) {
echo $term->name; // アクション、コメディと順に表示する
echo $term->slug; // action、comedyと順に表示する
}
ちなみに、タクソノミー を何も選択していないときには、false が返却されるので、通常は下記のようにif文で括るようにして、ぼくの場合は利用している。
if ($terms = get_the_terms($post->ID, 'genre')) {
foreach ($terms as $term) {
echo $term->name;
echo $term->slug;
}
}