次のコードを使用して、カテゴリのすべての子カテゴリを取得し、その子カテゴリの子投稿を表示します。
<?php
$cats = get_categories( 'child_of='.get_query_var( 'cat' ) );
foreach ( $cats as $cat ) :
$args = array(
'posts_per_page' => 3, // max number of post per category
'category__in' => array( $cat->term_id )
);
$my_query = new WP_Query( $args );
if ( $my_query->have_posts() ) :
echo '<h3>'.$cat->name.'</h3>';
?>
<?php while( $my_query->have_posts() ) : $my_query->the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<br />
<?php endwhile; ?>
<?php else : ?>
No Posts for <?php echo $cat->name; ?>
<?php endif; ?>
<?php endforeach; ?>
そして私はこの出力を取得したいです。
Cat Child 1
-Post1 Child 1
-Post2 Child 1
-Post3 Child 1
-So on... .
Cat Child 2
-Post1 Child 2
-Post2 Child 2
-Post3 Child 2
-So on... .
しかし、その代わりに、両方の子カテゴリが繰り返し繰り返されています。誰が問題が何であるか私に言うことができますか?これは私が今持っている出力です。
Cat Child 1
-Post1 Child 1
-Post2 Child 1
-Post3 Child 1
-So on... .
Cat Child 2
-Post1 Child 2
-Post2 Child 2
-Post3 Child 2
-So on... .
Cat Child 1
-Post1 Child 1
-Post2 Child 1
-Post3 Child 1
-So on... .
Cat Child 2
-Post1 Child 2
-Post2 Child 2
-Post3 Child 2
-So on... .
Cat Child 1
-Post1 Child 1
-Post2 Child 1
-Post3 Child 1
-So on... .
Cat Child 2
-Post1 Child 2
-Post2 Child 2
-Post3 Child 2
-So on... .
9回ループして停止するまで。何が問題ですか?
<?php $cats = get_categories('child_of='.get_query_var('cat'));
foreach ($cats as $cat) :
$args = array(
'posts_per_page' => 3, // max number of post per category
'category__in' => array($cat->term_id)
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) :
echo '<h3>'.$cat->name.'</h3>';
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php /*general loop output; for instance: */ ?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a> <br />
<?php endwhile; ?>
<?php else :
echo 'No Posts for '.$cat->name;
endif;
wp_reset_query();
endforeach; ?>
wp_reset_query()
を使用してください。リセットWP_Queryのendforeachの前に。