2012-10-02 83 views
7

我有一個WordPress的循環如下:如何添加一個類每n個項目在一個PHP循環(WordPress的)

<?php $loop = new WP_Query(array('post_type' => 'portfolio')); ?> 
    <?php while ($loop->have_posts()) : $loop->the_post(); ?> 
    <div class="four columns"> 
     <?php the_content(); //along with other stuff in looped div ?> 
    </div> 
<?php endwhile ?> 

我如何添加一個「阿爾法」級的每一個(4N-3 )第div(div.four.columns)和'歐米茄'類到每(4n)項使用PHP?

感謝(很多!), 傑米

+7

保持一個計數器,從0開始,並通過1每次循環遞增。那麼如果'counter%3 == 0',那麼它就是「每第3個循環」。同樣,「每4個循環」都有一個「counter%4 == 0」。根據需要做額外的數學運算。 – 2012-10-02 20:53:51

回答

23

爲什麼不添加計數器和使用模的方法來得到什麼元素,您正在呼應的每一列都知道。

假設你有4列指定。
你開始計數器= 1
1%4 = 1(你是在第一個元素)
2%4 = 2(你在第二元件)
3%4 = 3(你在第三元件)
4%4 = 0(你是在第四元件)
5%4 = 1(你是在第一個元素)
6%4 = 2(你在第二元件)

而你只是使用一個If語句與類如下

從所提出的意見
<?php $counter = 1 ?> 
<?php $loop = new WP_Query(array('post_type' => 'portfolio')); ?> 
    <?php while ($loop->have_posts()) : $loop->the_post(); ?> 
    <div class="four columns <?php if ($counter % 4 == 1){echo 'alpha'}else if ($counter % 4 == 0){echo 'omega'} ?>"> 
     <?php the_content(); //along with other stuff in looped div ?> 
    </div> 
<?php $counter++ ; 
endwhile ?> 
1

實現:

<?php $loop = new WP_Query(array('post_type' => 'portfolio')); ?> 
    <?php 
     $i = 0; 
     while ($loop->have_posts()) : $loop->the_post(); 
      if($i % 4 == 0) 
      $class = 'omega'; 
      else 
      $class = ''; 
     ?> 
    <div class="four columns <?php echo $class ?>"> 
     <?php 
      the_content(); // Along with other stuff in looped div 
      $i++; 
     ?> 
    </div> 
<?php endwhile ?> 
+0

但是你沒有在每個循環中重置'$ class'。一旦'$ class ='omega';'確實發生,'$ class'將總是'omega'。 '$ class ='';'應該在while循環中。 – 2012-10-02 21:19:42

+1

你是對的:) – JvdBerg

相關問題