PHP循环-在每三个项目周围添加一个Div
这是适用于3个项目的代码,如果3个项目有精确的倍数(即,如果我们有9个项目),那么它将在末尾添加一个额外的空白div 如果有项目不是3的倍数(即,如果我们有8个项目),那么它可以正常工作。我不是程序员 因此,任何帮助都将不胜感激: 下面是代码示例:PHP循环-在每三个项目周围添加一个Div,php,wordpress,loops,Php,Wordpress,Loops,这是适用于3个项目的代码,如果3个项目有精确的倍数(即,如果我们有9个项目),那么它将在末尾添加一个额外的空白div 如果有项目不是3的倍数(即,如果我们有8个项目),那么它可以正常工作。我不是程序员 因此,任何帮助都将不胜感激: 下面是代码示例: <div class="row"> <?php $i = 1; $wp_query = new WP_Query( array( 'posts_per_page' => -1,
<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>
如果不是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的倍数,可以在循环结束后添加
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>
解决这个问题的方法有很多,这里有一种:
<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>
我还清理了代码,消除了没有帖子时出现的错误。解决这个问题的方法有很多,这里有一个:
<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>
我还清理了代码,消除了没有帖子时出现的错误。试试这段代码
<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>
试试这段代码
<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>
如果我正确理解了你的问题,那么如果你的查询返回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>
但从那以后,马克斯·p.用我的建议做了更好的回答。这两个代码之间的区别在于,当没有项目被赋予时,这段代码将创建一个空div,但他的不是。如果我正确理解了您的问题,那么如果您的查询返回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>
但从那以后,马克斯·p.用我的建议做了更好的回答。这两个代码之间的区别在于,当没有任何项目被赋予时,此代码将创建一个空div,但其不是。您可以添加一个名为
$j
和$j=floor($i/3)
的变量
然后
如果($i%3==0&&$i!=3*$j){echo';}
您可以添加一个名为$j
和$j=floor($i/3)
的变量
然后
如果($i%3==0&&$i!=3*$j){echo';}
检查$i的值。如果“$i%9”的值为0。然后在while循环的末尾添加一个额外的div。你的意思是在末尾添加一个额外的div?如果我们有9个项目?您可以查看函数数组\u chunkCheck以检查$i的值。如果“$i%9”的值为0。然后在while循环的末尾添加一个额外的div。你的意思是在末尾添加一个额外的div?如果我们有9个项目?您可以查看函数数组。\u chunknow如果有3个项目的倍数,那么它将提供一个额外的div,否则不是@SalihK正如您所见,我使用的运算符(!=)表示“不相等”,这意味着如果$I
变量与项目数相等,则返回false。请显示如何使用上述整个代码的逻辑,因为它不适用于我。它更具可读性,感觉像一个wp waynow如果有3个项目的多个,那么它将提供一个额外的div,否则不是吗@SalihK正如您所见,我使用的运算符(!=)表示“不相等”,这意味着如果$I
变量与项目数相等,则返回false。请显示如何使用上述整个代码的逻辑,因为它不适用于我。它更具可读性,感觉像一个wpway@SalihK如果项目编号不能被3整除,则不会添加闭合div.@MaxP。您可以使用或运算符$i%3==0 | |$i==wp|u query->post_count
您将得到相同的结果,但我认为这将使代码可读。@SalihK如果项目编号不能被3整除,则不会添加一个结束div。@MaxP。您可以使用或运算符$i%3==0 | |$i==wp\u query->post\u count
获得相同的结果,但我认为这会使代码可读。