首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP循环:在每三项语法周围添加一个div

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

Stack Overflow用户
提问于 2012-01-21 05:08:38
回答 4查看 42.9K关注 0票数 21

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

代码语言:javascript
复制
$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;

我怎样才能做到这一点?谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-21 05:20:34

为什么不这样做呢?这将打开它,并在第三个帖子之后关闭它。如果没有3的倍数可供显示,则关闭结束div。

代码语言:javascript
复制
$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>';

如果你不知道,%是模运算符,它将返回两个数字相除后的余数。

票数 56
EN

Stack Overflow用户

发布于 2012-01-21 05:10:19

使用modulus运算符:

代码语言:javascript
复制
if ( $i % 3 == 0 )

在你的代码中,你可以使用:

代码语言:javascript
复制
if($i % 3 == 2) {echo '<div>';}

代码语言:javascript
复制
if($i % 3 == 0) {echo '</div>';}
票数 10
EN

Stack Overflow用户

发布于 2018-08-07 16:25:46

代码语言:javascript
复制
$i = 1;
$post_count=$wp_query->found_posts;
//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 && $i != $post_count) {echo '</div><div>';} elseif($i % 3 == 0 && $i == $post_count){echo '</div>';}

$i++; endwhile; endif;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8947878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档