在循环中定位第 1、6、11 post

Targeting 1st, 6th, 11th post within a loop

尝试编写代码以在循环中定位第 1、6 和 11 post。这就是我目前所拥有的,我想知道是否有更好的方法来定位这 3 posts.

<?php if (have_posts()) : ?>
<?php $count = 1; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
  <?php if ($count == 1) : ?>
      //do this
<?php elseif ($count == 6) : ?>
      //do this
<?php elseif ($count == 11) : ?>
      //do this
<?php else : ?>
      //do that
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>

首先,在您的代码中,您在循环开始时递增 $count 并在循环之前设置 $count = 1。所以你实际上是针对第 2、7 和 12 个帖子。

为了回答您的问题,如果您对 1、6 和 11 的所有三个帖子都做同样的事情,您可以使用模数组合 if 语句。

if ( ( $count % 5 == 1 ) {
   //do something
}

%(取模)正在计算余数。因此,如果 $count = 9,则 9 / 5 = 1 余数为 4...所以 9 % 5 = 4.

在您的例子中,您定位了 3 个项目,余数为 1(1 % 5、6 % 5 和 11 % 5 都等于 1)。

如果您对第 1、第 6 和第 11 个帖子分别做不同的事情,那么您现在的方法就可以了。只需在循环之前将 $count = 1 更改为 $count = 0。