我想在while循环中添加一些标记,以便每个项目都包含在<ul>
中,每个ul
都应该包含在div
中。最多可以有6个项目,我希望获得以下输出:
<div class="one">
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
</div>
<div class="two">
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
</div>
我正在尝试以下代码:
<div class="one">
<ul>
<?php
$i = 0 ;
while (have_posts()) : the_post();
$i++; ?>
<li>...</li>
<?php
if ($i === 3){
echo "</ul></div><div class='two'><ul>";
$right_div = true;
}
?>
}
if ($right_div){
</ul></div>
<?php } ?>
?>
如果至少有3个项目,它可以正常工作,但是如果少于3个,则会因为不关闭ul和div而中断代码。
使用 while循环非常重要,因为它是WordPress主题的一部分,它使用while循环来获取帖子。
答案 0 :(得分:1)
我不确定我明白了,但我认为问题是:
if ($right_div){
</ul></div>
<?php } ?>
这不应该是一个应该始终打印的条件。
答案 1 :(得分:0)
如果我理解正确,你说你想要 将3件组中的东西分组,但如果您有11件物品或其他东西 就像它打破了。如果是这种情况,则在最后一次迭代中 在while循环中你应该关闭ul和div元素。
像这样:
if(condition){
echo "</ul></div>";
}
答案 2 :(得分:0)
参考http://codex.wordpress.org/Function_Reference/have_posts
function more_posts() {
global $wp_query;
return $wp_query->current_post + 1 < $wp_query->post_count;
}
if (!more_posts()){
echo "</ul></div><div class='two'><ul>";
$right_div = true;
}
哦,我不是一个wordpress的家伙:P