自分のためのメモ

ループ内でカスタム投稿のターム(親子あり)で親のみを表示する

【条件】

  • functionでカテゴリーを1つしか選択できないようにしている
  • 親のみ、子のみ、未選択を考慮に入れる
<span>
    <?php
        $terms = get_the_terms($post->ID, 'taxonomy_name');
        foreach( $terms as $term ) {
            if($term->parent == 0) {
                echo $term->name ;
            }
            else {
                $parent_array = array_reverse( get_ancestors( $term->term_id, 'taxonomy_name' ) );
                if(count($parent_array)){
                    foreach( $parent_array as $parent_id ) {
                        $parent_term = get_term( $parent_id,  'taxonomy_name' );
                        if($parent_term->parent == 0) {
                            echo $parent_term->name;
                        }
                    }
                }else	echo '未分類';
            }
        }
    ?>
</span>

なんかややこしいな。。