ターム(カテゴリー)の階層による分岐

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

投稿リスト付きのタームリストで、タームの階層によって見出しタグを変える、
タクソノミーページではすぐ下のタームへのリンクのみを表示する、
投稿一覧で2階層目と3階層目のタームのみ表示する、
などで、タームの階層を判別する必要があって、Advanced Custom Fields で何階層目かの値を持たせてみた。

タクソノミーページですぐ下のタームのみへリンク:$term_slug = get_query_var(‘taxonomy’); $term_info = get_term_by(‘slug’,$term_slug,’taxonomy’);としてから

<?php if (get_field('first', 'taxonomy_' . $term_info->term_id)) { $categories = get_terms('taxonomy','orderby=order&order=ASC&hide_empty=0&child_of=' . $term_info->term_id); 
$count = 1; foreach ( $categories as $cat ) { if (get_field('second', 'taxonomy_' . $cat->term_id)) { ?><li<?php if ( $count % 3 == 0 ) { echo ' class="last"'; } ?>><a href="<?php echo get_term_link( $cat, taxonomy ); ?>" title="<?php echo $cat->name; ?>"><?php echo $cat->name; ?></a></li><?php $count++; } } ?>
<?php } else { $categories = get_terms('taxonomy','orderby=order&order=ASC&hide_empty=0&child_of=' . $term_info->term_id); 
$count = 1; foreach ( $categories as $cat ) { ?><li<?php if ( $count % 3 == 0 ) { echo ' class="last"'; } ?>><a href="<?php echo get_term_link( $cat, taxonomy ); ?>" title="<?php echo $cat->name; ?>"><?php echo $cat->name; ?></a></li><?php $count++; } } ?>

投稿リスト付きのタームリストではフォーラムのこの回答を元に、タームの階層によって見出しタグを変える分岐と、1つ目の階層のタームに子タームがない時に投稿リストを表示する分岐を挟んで、希望の仕様通りに出来た。かなり大変だったけど。

フォーラムはちょくちょくチェックしておくと、いいことあります。