为什么这会复制外部和while循环内部的帖子 - PHP?

时间:2013-04-10 13:22:39

标签: php wordpress

以下在循环中产生2个帖子,周围的div row-fluid。然后它创建了另外2个帖子。为什么是这样? 编辑:上面的代码按要求:

<?php  get_header(); ?>
<section class="clearfix" id="home">

<div class="row-fluid">

<?php $count = 1; ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>   
<div class="span4">
    <div class="wrap-title">
        <div class="position">
            <div class="title"><?php the_title();?></div>
            <div class="tags"><?php echo $cats; ?> </div>   
        </div>
    </div>  
</div>
<?php if($count == 2) {
    echo '</div>';
}?>
<?php $count++; ?>
<?php endwhile; ?>

我在这里发布了与wordpress相关的内容,因为我预计它会出现PHP语法错误,可能是count变量或者row-fluid div所在的位置。

1 个答案:

答案 0 :(得分:1)

虽然我会以不同的方式创建代码,但我认为解决问题的方法是将代码修改为:

<?php  get_header(); ?>
<section class="clearfix" id="home">

<?php $count = 1; ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>   
<?php if($count % 2 == 0) {
  <div class="row-fluid">
}?>
<div class="span4">
    <div class="wrap-title">
        <div class="position">
            <div class="title"><?php the_title();?></div>
            <div class="tags"><?php echo $cats; ?> </div>   
        </div>
    </div>  
</div>
<?php if($count % 2 == 0) {
    echo '</div>';
}?>
<?php $count++; ?>
<?php endwhile; ?>

修改

你说它也会产生2个帖子 - 这就是为什么你会在前两个帖子之后添加</div>,之后你将继续打印。解决方案是使用上面的代码 - 使用% 打印只有两个帖子使用此代码:

<?php  get_header(); ?>
<section class="clearfix" id="home">


<div class="row-fluid">

<?php $count = 1; ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>   
<div class="span4">
    <div class="wrap-title">
        <div class="position">
            <div class="title"><?php the_title();?></div>
            <div class="tags"><?php echo $cats; ?> </div>   
        </div>
    </div>  
</div>
<?php if($count == 2) {
    break;
}?>
<?php $count++; ?>
<?php endwhile; ?>
</div>

但上述代码可以优化,不会搜索所有帖子,但它应该按原样运行。