WordPressサイトにおいて、親カテゴリーと子カテゴリーを必ずセットで指定するような運用をしていることがあります。その場合、get_the_term_listやget_the_termsでカテゴリーをそのまま出力すると、選択しているカテゴリーが親子両方表示されます。
親カテゴリーのみを出力して子カテゴリーは表示しなくても良い、というケースもあるかと思います。そんな時のために、親カテゴリーのみを出力する方法をご紹介したいと思います。
WordPressの投稿一覧やシングルページで親カテゴリー(親ターム)のみを出力する方法
親カテゴリー・子カテゴリーが選択されている場合に、親カテゴリーのみを出力するには、一覧のループ内やシングルページ内で以下のように記述します。
<?php $terms = get_the_terms( $post->ID, 'タクソノミー名' ); if ( !empty( $terms ) ) { $output = array(); foreach ( $terms as $term ){ if( 0 == $term->parent ) $output[] = '<a href="' . get_term_link( $term ) .'">' . $term->name . '</a>'; } if( count( $output ) ) echo '' . join( ", ", $output ) . ''; } ?>
「タクソノミー名」のところで表示したいタクソノミーを指定してください。例えばカテゴリーの場合は、「category」になります。
「if( 0 == $term->parent )」で親カテゴリーかどうかを判別して出力しています。
あとがき
出力するカテゴリーを親のみにして、デザインをスッキリさせたいといった際には、ぜひお試しください。