親子関係にあるカテゴリーやカスタムタクソノミーで、親は出力せずに子カテゴリー(子ターム)のみを出力する方法をご紹介いたします。
記事ページやアーカイブのループ内で使える方法です。
親カテゴリーは出力せずに子カテゴリー(子ターム)のみを出力する方法
カテゴリーの場合
カテゴリーで子カテゴリーのみを出力したい場合は、テーマ内で以下のように記述します。
<?php $cats = get_the_category(); foreach($cats as $cat){ if($cat->parent){ echo $cat->cat_name; } } ?>
「if($cat->parent)」で子カテゴリーを判定していて、記事が属している子カテゴリーの名前が出力されます。
例えば、以下のようなカテゴリーがあって、「親カテゴリー」と「子カテゴリー1」に属していた場合、「子カテゴリー1」のみが表示されます。
親カテゴリー
└子カテゴリー1
└子カテゴリー2
└子カテゴリー3
カスタムタクソノミーの場合
カスタムタクソノミーでは、以下のように記述します。
<?php $terms = get_the_terms( $post ->ID, 'タクソノミー名' ); foreach( $terms as $term ) { if($term->parent){ echo $term->name; } } ?>
こちらも「if($cat->parent)」で子カテゴリーを判定しています。上記のように記述すると、記事が属している子タームの名前が出力されます。
あとがき
子カテゴリーや子タームのみを出力する場合が、制作案件でもたまにあるので、覚えておくと役立つと思います。
逆に親タームのみを出力したい場合は、「カテゴリーやカスタムタクソノミーの親タームのみを出力する方法」をご参照ください。