2015-03-19 125 views
2

我对PHP不太熟悉。我想在WP循环中插入一个条件语句,这样每创建一个新的div就会创建一个新的div,并将该帖子插入到该div中。这里是我的代码至今:PHP Wordpress循环中的嵌套条件不起作用

<?php $x = 0; ?> 
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
    <?php if (($x == 0) || ($x % 3 == 0)) ?> 
     <div class="section group"> 
      <div class="col span_1_of_3"> //column is 1/3 of the page 
       <?php the_content(); ?> 
      </div> 
     </div> 
     <?php $x += 1; ?> 
    <?php endwhile; else : ?> 
     <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
    <?php endif; ?> 

我出有4个职位测试它,而是与前三个职位创建一个三列的部分,然后开始下一段,我得到四个独立部分。可能微不足道的错误,但我似乎无法弄清楚!

+0

请将您的输出内容发送到 – 2015-03-19 11:28:27

+0

请注意'0%3 === 0'因此您的病情可以得到简化。 – 2015-03-19 11:32:19

+0

真@TomFenech,谢谢你。 – divergent 2015-03-19 12:05:35

回答

0

您需要稍微改变自己的逻辑,因为现在您在同一个块中显示内容以及部分的打开和关闭。

除此之外,你有一个错误:因为你的内部if语句后没有:{,它已成为一个空的陈述。

你需要的东西,如:

<div class="section group"> 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

    <?php if ($x > 0 && $x % 3 === 0): ?> 
           ^very important 
    </div> 
    <div class="section group"> 
    <?php endif; ?> 

     <div class="col span_1_of_3"> //column is 1/3 of the page 
      <?php the_content(); ?> 
     </div> 
     <?php $x += 1; ?> 

<?php endwhile; else : ?> 
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
<?php endif; ?> 
</div> 

现在你只接近,如果你的内心if匹配和条件的实际工作打开一个新的部分。

+1

感谢您指出错误。有一个额外的“endif”,但删除后,它工作正常。 – divergent 2015-03-19 12:04:32

+0

@chidumaga你说得对,我为了以防万一。 – jeroen 2015-03-19 12:16:13