Php 在循环中每包装3个元素,就会留下一个空包装
我将循环中的每3个元素包装在一个包装器div中,如下所示:Php 在循环中每包装3个元素,就会留下一个空包装,php,wordpress,Php,Wordpress,我将循环中的每3个元素包装在一个包装器div中,如下所示: $query = array( 'post_type' => 'post', ); $i = 1; $posts = new WP_Query( $query ); $out = '<div class="wrapper">'; if ($posts->have_posts()){ while ($posts->have_posts()){ $posts->the_
$query = array(
'post_type' => 'post',
);
$i = 1;
$posts = new WP_Query( $query );
$out = '<div class="wrapper">';
if ($posts->have_posts()){
while ($posts->have_posts()){
$posts->the_post();
$out.= '<div class="content">
//content here
</div>';
if($i % 3 == 0) {
$out .= '</div><div class="wrapper">';
}
$i++;
}
}
$out .= '</div>';
wp_reset_postdata();
return '<section>'.$out.'</section>';
这创造了一个好的包装html减去一个困扰我的小东西:
<section>
<div class="wrapper">
<div class="content"></div>
</div>
<div class="wrapper">
<div class="content"></div>
</div>
<div class="wrapper"></div>
</section>
如果我有6篇文章,或者是3的任意倍数,而modulo也应该这样做,我会得到一个额外的空包装。这真的不需要
那么,我应该在查询中包含什么条件来确保我不会得到空的包装器呢?在其中添加包装器:
$query = array(
'post_type' => 'post',
);
$i = 1;
$posts = new WP_Query( $query );
$out = '';
$endingNeeded = false;
if ($posts->have_posts()){
while ($posts->have_posts()){
if($i % 3 == 1) {
$out .= '<div class="wrapper">';
$endingNeeded = true;
}
$posts->the_post();
$out.= '<div class="content">
//content here
</div>';
if($i % 3 == 0) {
$out .= '</div>';
$endingNeeded = false;
}
$i++;
}
}
if($endingNeeded) {
$out .= '</div>';
}
wp_reset_postdata();
return '<section>'.$out.'</section>';
在内部添加包装:
$query = array(
'post_type' => 'post',
);
$i = 1;
$posts = new WP_Query( $query );
$out = '';
$endingNeeded = false;
if ($posts->have_posts()){
while ($posts->have_posts()){
if($i % 3 == 1) {
$out .= '<div class="wrapper">';
$endingNeeded = true;
}
$posts->the_post();
$out.= '<div class="content">
//content here
</div>';
if($i % 3 == 0) {
$out .= '</div>';
$endingNeeded = false;
}
$i++;
}
}
if($endingNeeded) {
$out .= '</div>';
}
wp_reset_postdata();
return '<section>'.$out.'</section>';
这管用!谢谢:我会在2分钟内接受。我记得我本可以使用.wrapper:empty{display:none;},但这要好得多,因为我没有留下没有用途的空div:这很有效!谢谢:我会在2分钟内接受。我记得我本可以使用.wrapper:empty{display:none;},但这要好得多,因为我没有留下没有任何用途的空div: