这是适用于3个项目的代码,如果有3个项目的精确倍数(即,如果我们有9个项目),那么它将在末尾添加一个额外的空白div。
如果有不是3的倍数的项目(即,如果我们有8个项目)那么它可以正常工作。我不是程序员,
所以任何帮助将不胜感激:
Bellow是代码示例:
<div class="row">
<?php
$i = 1;
$wp_query = new WP_Query( array( 'posts_per_page' => -1,
'post_type' => 'projects' ) );
echo '<div class="panel">';
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
the_title();
if($i % 3 == 0) { echo '</div><div class="panel">'; }
$i++;
endwhile; endif;
echo '</div>';
?>
</div>
答案 0 :(得分:2)
如果我正确理解了您的问题,如果您的查询返回3个项目的精确倍数,则您不希望广告空div。
所以改为:
if($i % 3 == 0)
使用此:
if($i % 3 == 0 && $wp_query->post_count != $i)
我的建议是将代码编辑为:
<div class="row">
<?php
$i = 1;
$wp_query = new WP_Query(array('posts_per_page' => -1, 'post_type' => 'projects'));
echo '<div class="panel">';
if($wp_query->have_posts()) : while ($wp_query->have_posts()) :
$wp_query->the_post();
the_title();
if($i % 3 == 0 && $wp_query->post_count != $i){
echo '</div><div class="panel">';
}
$i++;
endwhile; endif;
echo '</div>';
?>
</div>
但是从那以后 Max P。使用我的建议做出了更好的回答。两个代码之间的区别在于,当没有给出项目时,这个代码会创建一个空div,但是他没有。
答案 1 :(得分:1)
试试此代码
<div class="row">
<?php
$i = 1;
$wp_query = new WP_Query( array( 'posts_per_page' => -1,
'post_type' => 'projects' ) );
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) :
if($i % 3 == 1) { echo '<div class="panel">'; }
$wp_query->the_post();
the_title();
if($i % 3 == 0 || $i == $wp_query->post_count) { echo '</div>'; }
$i++;
endwhile;
endif;
?>
</div>
答案 2 :(得分:0)
如果循环结束时不是3的倍数,则可以在循环结束后添加div
。
<div class="row">
<?php
$i = 1;
$wp_query = new WP_Query( array( 'posts_per_page' => -1,
'post_type' => 'projects' ) );
echo '<div class="panel">';
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) :
$wp_query->the_post();
the_title();
if($i % 3 == 0) { echo '</div><div class="panel">'; }
$i++;
endwhile;
endif;
if($i % 3 != 0) { echo '</div><div class="panel">'; }
echo '</div>';
?>
</div>
答案 3 :(得分:0)
有很多方法可以解决这个问题,这里有一个:
<div class="row">
<?php
echo '<div class="panel">';
$i = 0;
$wp_query = new WP_Query(array('posts_per_page' => -1,
'post_type' => 'projects'));
if ($wp_query->have_posts()) {
while ($wp_query->have_posts()) {
if($i % 3 == 0)
{
if ($i > 0) echo '</div>';
echo '<div class="panel">';
}
$wp_query->the_post();
the_title();
$i++;
}
echo '</div>';
}
?>
</div>
我还清理了代码并清除了没有帖子时发生的错误。
答案 4 :(得分:0)
您可以添加名为$j
和$j = floor($i/3)
的变量。
然后if($i % 3 == 0 && $i != 3 * $j) { echo '</div><div class="panel">'; }
;