在循环中包装每2个div时未闭合的div

时间:2015-04-16 04:58:10

标签: php html wordpress

我在下面进行了以下设置。我试图在“行”中包装2个div。

当它是偶数时它工作得很好,但是当有一个奇数时,我以一个开放的div结束并得到html错误。如何更好地确保有一个结束div的任何想法将不胜感激

<?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();?>

4 个答案:

答案 0 :(得分:0)

如果需要,您必须放置和结束关闭标记。我更改计数方法更清楚。

    <?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>' ;?>

答案 1 :(得分:0)

保持打开的div数量

更改此

<?php if($i==1 || $i%2==1) echo '<div class="row">';?>

<?php if($i==1 || $i%2==1){ echo '<div class="row">'; $count = 1;} ?>

并在关闭div时检查count == 1

<?php if($count==1){ echo '</div>' ; $count=0; } ?>

答案 2 :(得分:0)

尝试

<?php $i++; endwhile; if($i%2==1) echo '</div>' ; wp_reset_query();?>

取代

<?php $i++; endwhile; wp_reset_query();?>

答案 3 :(得分:0)

试一试

<?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(); ?>