制作ブログ Web制作アプリケーションWordPressカスタム投稿のタクソノミーの一覧や選択した値を取得する → get_the_terms(), get_terms()

カスタム投稿のタクソノミーの一覧や選択した値を取得する → get_the_terms(), get_terms()

たとえば、タクソノミースラッグを「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;
  }
}