wordpressのカスタム投稿で作った投稿ページを、タクソノミーアーカイブページで表示しています。その際に、各投稿に紐付けしているタクソノミーの子タームのnameを1つずつ取り出したいです。
例えば下記のように定義されていたとします。
<アイテム1>
タクソノミー名:fashion
ターム1層目:outer
ターム2層目:coat
(階層構造)
fashion
-outer(ターム1層目)
--coat(ターム2層目)
<アイテム2>
タクソノミー名:fashion
ターム1層目:outer
ターム2層目:jacket
(階層構造)
fashion
-outer(ターム1層目)
--jacket(ターム2層目)
編集しているファイル名
taxonomy-fashion-outer.php
ここでouterにチェックが入っている投稿を一覧表示しながら子タームのcoat,jacketをそれぞれの投稿に表示しようとしています。
html
1<?php if ( have_posts() ) : ?> 2 <?php while ( have_posts() ) : the_post(); ?> 3 4 <?php 5 $term_id = get_queried_object()->term_id; 6 $taxonomy_name = 'fashion'; 7 $termchildren = get_term_children( $term_id, $taxonomy_name ); 8 ?> 9 10 <?php 11 $i = 0; 12 foreach ( $termchildren as $child ) { 13 if($i == 1){ 14 break; 15 } 16 $term = get_term_by( 'id', $child, $taxonomy_name ); 17 18 ?> 19 20 <ul> 21 <?php echo '<li><a href="' . get_term_link( $child, $taxonomy_name ) . '">' . $term->name . '</a></li>'; ?> 22 <li><?php the_post_thumbnail(); ?></li> 23 <li><?php echo get_the_title(); ?></li> 24 <li><?php echo get_the_content(); ?></li> 25 </ul> 26 <hr> 27 <?php $i++; } ?> 28 <?php endwhile; ?> 29 <?php endif; ?>
上記のように表示すると、二つともcoatが表示されてしまいます。
php
1if($i == 2){ 2 break; 3 }
2周でブレイクさせると、
アイテム1 coat
アイテム2 coat
アイテム1 jacket
アイテム2 jacket
という風に表示されてしまうのですが、どうしたら
アイテム1 coat
アイテム2 jacket
となるでしょうか?
ご教授いただけましたら幸いです。
回答1件
あなたの回答
tips
プレビュー