カテゴリに親子関係(2代)があるカスタム投稿のカテゴリと投稿記事を出力したいのですが、子カテゴリに属する投稿を親カテゴリのみに属するグループには出力しないようにするにはどうすればよろしいでしょうか?
親カテゴリA
-子カテゴリ1
-子カテゴリ2
「投稿記事1」のカテゴリは
親カテゴリAのみ
「投稿記事2」のカテゴリは
親カテゴリAと子カテゴリ1
「投稿記事3」のカテゴリは
親カテゴリAと子カテゴリ1と子カテゴリ2
というカテゴリと投稿記事があった場合に下記の構造で出力したいと思いますが、
<h2>親カテゴリA</h2> <p><a href="投稿記事のリンク">投稿記事1</a></p> <h3>子カテゴリ1</h3> <p><a href="投稿記事のリンク">投稿記事2</a></p> <p><a href="投稿記事のリンク">投稿記事3</a></p> <h3>子カテゴリ2</h3> <p><a href="投稿記事のリンク">投稿記事3</a></p>うまくいかず、下記のように親カテゴリに全て表示されてしまいます。
<h2>親カテゴリA</h2> <p><a href="投稿記事のリンク">投稿記事1</a></p> <p><a href="投稿記事のリンク">投稿記事2</a></p> <p><a href="投稿記事のリンク">投稿記事3</a></p> <h3>子カテゴリ1</h3> <p><a href="投稿記事のリンク">投稿記事2</a></p> <p><a href="投稿記事のリンク">投稿記事3</a></p> <h3>子カテゴリ2</h3> <p><a href="投稿記事のリンク">投稿記事3</a></p>親カテゴリのみに属する記事だけを取得するにはどうすればいいのでしょうか?
###試したこと
$args = array( 'type' => 'post', 'child_of' => 0, 'parent' => '0', 'hide_empty' => 0, 'taxonomy' => 'guide_cat' ); $categories = get_categories( $args ); foreach($categories as $line){ //親カテゴリタイトル出力 echo "<h2>" . $line->name . "</h2>"; //-------親カテゴリのみの記事を取得 // ここに親カテゴリのみの記事を取得する処理 //--------------------------------- //子カテゴリ取得 $children = get_term_children($line->cat_ID, 'guide_cat'); foreach($children as $child){ $term = get_term_by('id', $child, 'guide_cat'); //子カテゴリタイトル出力 echo "<h3>" . $term->name . "</h3>"; //子カテゴリに属する記事取得 $args = array( 'post_type' => "guide", 'guide_cat' => $term->slug ); $query = get_posts($args); if ($query){ foreach($query as $post){ setup_postdata($post); echo "<p>" . $post->post_title . "</p>"; } } wp_reset_postdata(); } }
###補足情報
Wordpress 4.7.2
回答1件
あなたの回答
tips
プレビュー