Php 在循环中每2个div包装一次时未关闭的div
我有下面的设置。我试着把每两个div都排成一行 当它是偶数时效果很好,但当它是奇数时,我以一个打开的div结束,并得到html错误。任何关于如何更好地确保有一个结束div的想法都将不胜感激Php 在循环中每2个div包装一次时未关闭的div,php,html,wordpress,Php,Html,Wordpress,我有下面的设置。我试着把每两个div都排成一行 当它是偶数时效果很好,但当它是奇数时,我以一个打开的div结束,并得到html错误。任何关于如何更好地确保有一个结束div的想法都将不胜感激 <?php $args = array( 'post_type' => 'portfolio-project', 'posts_per_page' => -1,
<?php
$args = array(
'post_type' => 'portfolio-project',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC'
);
$query = query_posts($args);
?>
<?php $i=1; ?>
<?php while (have_posts()) : the_post(); ?>
<?php if($i==1 || $i%2==1) echo '<div class="row">' ;?>
<div class="col-sm-6">
<?php the_title();?>
</div>
<?php if($i%2==0) echo '</div>' ; ?>
<?php $i++; endwhile; wp_reset_query();?>
如果需要,您必须放置并结束关闭标记。我把计数方法改得更清楚了
<?php $i=1; while (have_posts()) : the_post(); ?>
<?php if($i==1) echo '<div class="row">' ;?>
<div class="col-sm-6">
<?php the_title();?>
</div>
<?php if($i==2) echo '</div>' ; ?>
<?php $i++; if($i>2)$i=1;endwhile; wp_reset_query();if($i==2) echo '</div>' ;?>
保持打开的div数量的计数 改变这个
<?php if($i==1 || $i%2==1) echo '<div class="row">';?>
到
并在关闭div时检查count==1
<?php if($count==1){ echo '</div>' ; $count=0; } ?>
试试看
代替
<?php $i++; endwhile; wp_reset_query();?>
试试看
<?php $i = 2; ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ($i == 2 || $i % 2 == 0) echo '<div class="row">'; ?>
<div class="col-sm-6">
<?php the_title(); ?>
</div>
<?php if ($i == 2 || $i % 2 == 0) echo '</div>'; ?>
<?php $i++;
endwhile;
wp_reset_query(); ?>
您正在检查一个打开div的条件,另一个关闭div的条件,然后它将如何正确关闭endwhile后重复此行;我认为这会解决你的问题。@ManishShukla你应该作为答案发布,与你的答案相比,下面的其他答案既不清楚也不干净。@MikeThomson检查我的答案answer@ManishShukla请参阅我对您答案的评论。这是正确的,但您需要将其更改回检查$i%2==0,就像您最初的评论一样(这是因为在while循环结束时,有一个$i++发生在该条件失败之后,但现在将通过)。对吗?
<?php $i++; endwhile; wp_reset_query();?>
<?php $i = 2; ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ($i == 2 || $i % 2 == 0) echo '<div class="row">'; ?>
<div class="col-sm-6">
<?php the_title(); ?>
</div>
<?php if ($i == 2 || $i % 2 == 0) echo '</div>'; ?>
<?php $i++;
endwhile;
wp_reset_query(); ?>