WP:直近の子タームのみの一覧

前回の記事では、子タームを持つかどうかで処理を分岐し、子タームがある場合にはすべてのターム情報を一覧で表示し、
子を持たない場合には投稿の一覧を表示していました。
そして、今回は「すべての子ターム情報」というところがネックになりました。
すべて、ではなく直近の子のターム情報だけの一覧を表示したかったのです。

前回、ターム情報の取得に使っていた関数は「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をセットしてやることで、直近の子ターム情報を引っ張ってくれます。
これで目的が果たせました。

admin

cl0606

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です