前回の記事では、子タームを持つかどうかで処理を分岐し、子タームがある場合にはすべてのターム情報を一覧で表示し、
子を持たない場合には投稿の一覧を表示していました。
そして、今回は「すべての子ターム情報」というところがネックになりました。
すべて、ではなく直近の子のターム情報だけの一覧を表示したかったのです。
前回、ターム情報の取得に使っていた関数は「get_term_children」でしたが、
これは全てのターム情報を取得します。
これでは具合が悪いので、今回は「get_terms」に書き換えました。
<?php
$term_id = $taxonomy->term_id;
$children = get_term_children( $term_id, $taxonomy_name );
if ( $children ): //子カテゴリーを持つ場合
?>
<?php
$taxonomy_name = 'safety-cat';
$terms = get_terms( $taxonomy_name, array(
'parent' => $term_id,
'hide_empty' => false,
'orderby' => 'term_order',
));
foreach ( $terms as $term ) :
?>
<tr><td><a href="<?php echo get_term_link( $term ); ?>"><?php echo $term->name; ?></a><td></th>
<?php endforeach; ?>
parentにタームIDをセットしてやることで、直近の子ターム情報を引っ張ってくれます。
これで目的が果たせました。








