正确答案:
感谢代码宇宙
$i=0;
<?php while(have_posts()):the_post();?>
if ($i % 5 == 0) {
echo '<div class="box">';
}
echo '<div class="post">...</div>';
if ($i % 5 == 4) {
echo '</div>';
}
$i++;
<?php endwhile;wp_reset_query(); ?>
if ($i % 5 != 0) {
echo '</div>';
}
原文内容:
注意,这是一个细思极恐的问题,请仔细阅题!
首先,有一个不能改变的条件,就是循环输出内容的代码,例如
<?php while(have_posts()):the_post();?>
//此处将循环输出多篇文章
<?php endwhile;wp_reset_query(); ?>
我需要输出的HTML格式如下
<div id="content">
<div class="box">
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
//一共五篇,也就是5个POST
</div>
<div class="box">
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
</div>
<div class="box">
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
</div>
</div>
条件:
1.文章数量不确定,一定>5
2.每隔5篇文章,需要使用一个Box的div包裹(难点在此,第一次输出
<div id="content">
<div class="box">
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
</div>
<div class="box">
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
<div class="post">...</div>
</div>
<div class="box">
<div class="post">...</div>
</div>
</div>
这时候我的PHP代码应该是怎么样的呢?
我的尝试:
<div id="content">
<?php while(have_posts()):the_post();$i++;?>
<?php if($qp_i == 1 || $qp_i == 6 || $qp_i == 11 || $qp_i == 16){echo '<div class="box">';$qp_a++;} ?>
...post
<?php if($qp_i == 5 || $qp_i == 10 || $qp_i == 15 || $qp_i == 20){echo '</div>';} ?>
<?php endwhile;wp_reset_query(); ?>
</div>
这个方式的弊端是只能是IF里面规定的数值外,还必须是可以整除的文章数量。
可能你想到了用$i++ 之类的判断5次后输出,之类的,但是请注意,第一次循环需要echo出
提要:
关于周神的回答
= =!!! 这不是很简单吗... 有毛难度啊
$postCount=0; //文章计数
echo '<div class="box">';
<?php while(have_posts()):the_post();?>
//此处将循环输出多篇文章
$postCount++;
if( $postCount > 1 && $postCount% 5 == 1 ){
echo '</div><div class="box">';
}else{
echo '<div class="post">...</div>';
}
<?php endwhile;wp_reset_query(); ?>
echo '</div>';
结果:
第一个5个,第二三个4个,剩下空白
参考:
<?php
$a == 0;
echo '<div class="box">';
?>
<?php
for ($i = 0; $i < 16; $i++) {
$a++;
if ($a > 1 && $a % 5 == 1) {
echo '</div><div class="box">';
} else {
echo '<div class="post">内容</div>';
}
}
?>
<?php
echo '<div>';
?>
posts()):the_post();?>
if ($i % 5 == 0) {
echo '<div class="box">';
}
echo '<div class="post">...</div>';
if ($i % 5 == 4) {
echo '</div>';
}
$i++;
<?php endwhile;wp_reset_query(); ?>
if ($i % 5 != 0) {
echo '</div>';
}
<?php while(have_posts()):the_post();?>
echo '<div class="box">';
echo '<div class="post">...</div>';
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
} else {
echo '</div>';
break;
}
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
} else {
echo '</div>';
break;
}
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
} else {
echo '</div>';
break;
}
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
}
echo '</div>';
<?php endwhile;wp_reset_query(); ?>
<?php while(have_posts()):the_post();?>
echo '<div class="box">';
echo '<div class="post">...</div>';
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
if (have_posts()) {
the_post();
echo '<div class="post">...</div>';
}
}
}
}
echo '</div>';
<?php endwhile;wp_reset_query(); ?>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。