首先,您不需要任何自定义计数器($count
变量)来实现这一点。WP_Query
已经有这样的计数器:
$current_post (循环过程中可用)当前显示的post索引。
你可以使用它。
然后回到您的代码。。。您的主要问题是,您没有在while循环中使用任何条件,而是在循环之后添加它们,所以它们什么都不做。
下面是它的外观:
<?php
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$query = new WP_Query(
array(
\'posts_per_page\' => 7,
\'paged\' => $paged
)
);
if ( $query->have_posts() ) : // if there are any posts found ?>
<div><!-- section 1 -->
<?php while ( $query->have_posts() && $query->current_post < 3 ) : $query->the_post(); ?>
// put layout 1 here
<?php endwhile; ?>
</div>
<?php endif; ?>
<?php if ( $query->have_posts() ) : // if there are enough posts for section 2 ?>
<div><!-- section 2 -->
<?php while ( $query->have_posts() && $query->current_post < 6 ) : $query->the_post(); ?>
// put layout 2 here
<?php endwhile; ?>
</div>
<?php endif; ?>
<?php if ( $query->have_posts() ) : // if there are enough posts for section 3 ?>
<div><!-- section 3 -->
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
// put layout 3 here
<?php endwhile; ?>
</div>
<?php endif; ?>