カスタム投稿のタクソノミーの親・子ターム一覧と該当記事の表示方法
-
自作のテーマにカスタム投稿を追加し、
下記サイトを参考にタクソノミーの階層ごとの記事一覧を作成しました。
http://hirashimatakumi.com/blog/3530.html子タームに記事がある場合に親タームに属している記事が表示されないため、子タームに記事がある場合でも親タームに記事が表示されるようにしたいです。
各章(親ターム)に内節(子ターム)を設定した場合に
第一章(子タームなし)
・記事
第二章(子タームなし)
・記事
第三章(子タームあり)
【・記事】 ← ここが抜けている
第三章内節(子ターム)
・記事
・記事
のイメージです。<?php // WordPress のタクソノミーの親・子のターム一覧とタームに紐づく記事一覧の出力 $categories = get_terms('blog-cat','parent=0'); foreach ( $categories as $cat ) { echo '<h2>' . esc_html($cat->name) . '</h2>'; // 親カテゴリタイトル $children = get_terms('blog-cat','hierarchical=0&parent='.$cat->term_id); if($children){ // 子カテゴリの有無 //ここに親カテゴリの記事を出力させる? ・・・☆ foreach ( $children as $child ) { echo '<h3>' . esc_html($child->name) . '</h3>'; // 子カテゴリタイトル $catslug = $child->slug; $args = array( 'post_type' => 'blog', 'blog-cat' => $catslug , 'posts_per_page' => -1 ); $myquery = new WP_Query( $args ); ?> <?php if ( $myquery->have_posts()): ?> <ul> <?php while($myquery->have_posts()): $myquery->the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php endif; ?> <?php wp_reset_postdata(); ?> <?php } //子カテゴリに紐づく記事一覧の出力終了 ?> <?php } else { // 子カテゴリがなければ親カテゴリに紐づく記事一覧を出力 $catslug = $cat->slug; $args = array( 'post_type' => 'blog', 'blog-cat' => $catslug , 'posts_per_page' => -1 ); $myquery = new WP_Query( $args ); ?> <?php if ( $myquery->have_posts()): ?> <ul> <?php while($myquery->have_posts()): $myquery->the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php endif; ?> <?php wp_reset_postdata(); ?> <?php } // 子カテゴリの有無 if文終了 ?> <?php } // 出力の終了 ?>
☆の箇所に親カテゴリの記事を出そうとすると、子カテゴリも一緒に表示されてしまいます。
親カテゴリのみ表示する方法や子カテゴリを除外する方法、
あるいは、これ以外で親と子でリストのまとまりを分けたりする方法があれば教えていただきたいです。よろしくお願いします。
- トピック「カスタム投稿のタクソノミーの親・子ターム一覧と該当記事の表示方法」には新たに返信することはできません。