PHP查询结果添加了额外的<li> </li>

时间:2014-10-19 01:12:15

标签: php html wordpress

出于某种原因,我在查询结果的最后得到了额外的<li> </li>。我怎样才能防止这种情况发生?

<li>
<?php

$counter = 0;
$query = new WP_Query( array( 'post_type' => 'serivces' ) );
while ( $query->have_posts() ) : $query->the_post(); $counter++;
?>
<div class="col-md-4 wp4">

                  <h2 class="text-left"><?php the_title(); ?></h2>
                  <p class="text-left"><?php the_content(); ?></p>
                </div>
<?php 
if ($counter > 0 && $counter % 3 == 0) {
echo '</li><li>';
} 

endwhile;
?>
</li>

1 个答案:

答案 0 :(得分:0)

您可以删除顶部的<li>和底部的</li>,以及循环开头和代码结尾处的一些额外if语句,如下所示:< / p>

<?php

$counter = 0;
$query = new WP_Query( array( 'post_type' => 'serivces' ) );
while ( $query->have_posts() ) :
 $query->the_post();
 $counter++;
 if($counter % 3 == 1) { echo '<li>'; }
?>
 <div class="col-md-4 wp4">
   <h2 class="text-left"><?php the_title(); ?></h2>
   <p class="text-left"><?php the_content(); ?></p>
  </div>
<?php 
 if ($counter > 0 && $counter % 3 == 0) {
  echo '</li>';
 } 
endwhile;

if($counter % 3 != 0) { echo '</li>'; }
?>

如果while循环中的最后一个if语句没有发生在3的倍数的迭代上,则底部的if语句只会执行,以确保list元素始终关闭。