我正在设置新的while循环,我想如何像下面的代码一样进行管理
<div class="item">
first post
</div>
<div class="col">
<div class="item">
second post
</div>
<div class="item">
Third post
</div>
</div>
<div class="item">
fourth post
</div>
感谢您的帮助
答案 0 :(得分:0)
并不困难,您需要像$ i这样的增量,以及像这样的if语句:
<?php
$i = 0;
while( something ):
if ( $i%2 == 0 ) { echo '<div class="col">'; }
?>
<div class="item">
some post
</div>
<?php
if ( $i%2 == 1 ) { echo '</div>'; }
$i++; endwhile;
?>
以上代码将获取您的数据(帖子),如果两个代码中的第一个我将在其前面加上“ col”,如果两个代码中的第二个将关闭div。 我不确定那是否是您想要的,如果不告诉我:D
编辑: 当我查看您的样本时,我可以稍微编辑一下上面的代码以为您提供准确的结果作为样本,因此我们不必在“ col”中包含第一篇文章,因此我们需要做出包含第二篇文章并首先离开的声明:< / p>
if(i$%4 == 1) { echo '<div class="col">'; }
此后,我们要在第三篇文章后关闭“ col”,所以:
if ( $i%2 == 2 ) { echo '</div>'; }
所以:
$i = 0
(第一个元素)时,我们什么也不做$i = 1
(第二个元素)时,我们使用类“ col”创建div $i = 2
(第三个元素)上,我们在打印帖子后关闭“ col” $i = 3
(第4个元素)时,我们什么也不做我相信您现在可以看到校长:D 让我知道我是否可以提供更多帮助
因此最终代码(例如,以“ pure” php编写)应如下所示:
<?php
if( have_posts ):
$i = 0;
while( have_posts ): the_post;
if ( $i%2 == 0 ) { echo '<div class="col">'; }
echo '<div class="item"> some post </div>';
if ( $i%2 == 1 ) { echo '</div>'; }
$i++; endwhile;
?>
这是我相信的版本可以解决您的问题:
<?php
if( have_posts ):
$i = 0;
while( have_posts ): the_post;
if ( $i == 1 ) { echo '<div class="col">'; }
echo '<div class="item"> some post </div>';
if ( $i == 2 ) { echo '</div>'; }
$i++; endwhile;
?>
上面的代码将计算循环的迭代次数,并将第二和第三篇文章包装在“ col”中。