【wordpress】タクソノミー 系の取得の備忘録

タクソノミー 系の取得をよく忘れてしまいがちなのでメモ。

カスタム投稿アーカイブページで全てのタームを取得

<div class="category">
  <?php
  $all_category = get_terms('{カスタムタクソノミー名}', array('hide_empty' => false,'orderby' => 'slug'));//'hide_empty' => falseで、空のタームも出力する
  if ($all_category) {
    foreach ($all_category as $value) {
      echo '<span><a href="'.$value->slug.'">'.$value->name.'<a></span>';
  ?>
  <?php }
  } ?>
</div>

hide_emptyをfalseにすることで、空のタームも出力する。アーカイブや検索フォームなどでよく使いました。
'orderby' => 'slug'でslugの順で並び替えます。orderbyのデフォルト値はname順です。

カスタム投稿シングルページで所属するタームを取得

<ul class="category-list">
  <?php
  $post_ID = get_the_ID();
  $taxonomy_name = '{カスタムタクソノミー名}';
  $category_term = wp_get_post_terms($post_ID, $taxonomy_name, array('orderby' => 'slug'));
  if ($category_term) {
  foreach ($category_term as $value) {
      $url = home_url('/'.$taxonomy_name. '/' . $value->slug.'/');
      echo '<li><a href="'.$url.'">'.$value->name.'</a></li>';
        }
  } ?>
</ul>

■取得のみ。ソートできない
get_the_terms({post ID},{タクソノミー 名})


■オプションを入れることでソートできる
wp_get_post_terms({post ID},{タクソノミー 名},{オプション})
※オプションは配列

参考サイト

関数リファレンス/wp get post terms - WordPress Codex 日本語版