2015-03-19 44 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