タクソノミーのターム(カスタム分類の項目)を取得する

基本的な例

$terms = get_the_terms( $post->ID, 'report-category' );
if ( $terms && ! is_wp_error( $terms ) ) : 
    foreach ( $terms as $term ) :?>
        <?php echo $term->name; ?>
        <?php echo get_term_link( $term->slug, 'report-category'); ?>
    <?php endforeach; ?>
<?php endif; ?>

get_the_terms($post->ID)の戻り値

stdClass Object
(
    [term_id] =>
    [name] =>
    [slug] =>
    [term_group] => 
    [term_order] => 
    [term_taxonomy_id] =>
    [taxonomy] =>
    [description] => 
    [parent] =>
    [count] =>
    [object_id] =>
)

すべてのカスタム分類のタームを取得する

まず、テーマの functions.php に下記の関数を記述します。

<?php
// (タクソノミーと)タームのリンクを取得する
function custom_taxonomies_terms_links(){
  // 投稿 ID から投稿オブジェクトを取得
  $post = get_post( $post->ID );

  // その投稿から投稿タイプを取得
  $post_type = $post->post_type;

  // その投稿タイプからタクソノミーを取得
  $taxonomies = get_object_taxonomies( $post_type, 'objects' );

  $out = array();
  foreach ( $taxonomies as $taxonomy_slug => $taxonomy ){

    // 投稿に付けられたタームを取得
    $terms = get_the_terms( $post->ID, $taxonomy_slug );

    if ( !empty( $terms ) ) {
      $out[] = "<h2>" . $taxonomy->label . "</h2>\n<ul>";
      foreach ( $terms as $term ) {
        $out[] =
          '  <li><a href="'
        .    get_term_link( $term->slug, $taxonomy_slug ) .'">'
        .    $term->name
        . "</a></li>\n";
      }
      $out[] = "</ul>\n";
    }
  }

  return implode('', $out );
}
?>

引用サイト

関数リファレンス/get_the_terms

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