PHP 循环:在每三个项目语法周围添加一个 div

2022-08-30 19:29:24

我在wordpress中使用循环来输出帖子。我想将每三个帖子包装在一个div中。我想使用计数器在循环的每次迭代中递增,但我不确定语法是否显示“如果$i是3的倍数”或“如果$i是3 - 1的倍数”。

$i = 1;
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
     // If is the first post, third post etc.
     if("$i is a multiple of 3-1") {echo '<div>';}

     // post stuff...

     // if is the 3rd post, 6th post etc
     if("$i is a multiple of 3") {echo '</div>';}

$i++; endwhile; endif;

如何实现此目的?谢谢!


答案 1

为什么不做以下事情呢?这将在第三篇文章之后打开它并关闭它。然后在没有要显示的 3 的倍数时关闭结束 div。

$i = 1;
//added before to ensure it gets opened
echo '<div>';
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
     // post stuff...

     // if multiple of 3 close div and open a new div
     if($i % 3 == 0) {echo '</div><div>';}

$i++; endwhile; endif;
//make sure open div is closed
echo '</div>';

如果您不知道,modus运算符将在两个数字除以后返回余数。%


答案 2

使用模数运算符:

if ( $i % 3 == 0 )

在代码中,您可以使用:

if($i % 3 == 2) {echo '<div>';}

if($i % 3 == 0) {echo '</div>';}

推荐