2012-10-02 30 views
7

Tôi có một vòng lặp Wordpress như sau:Làm thế nào để thêm một lớp học để mỗi mục thứ n trong một vòng lặp 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 ?> 

Làm thế nào tôi có thể thêm một lớp 'alpha' cho mọi (4n-3) div thứ (div.four.columns) và lớp 'omega' cho mỗi mục (4n) bằng php?

Cảm ơn (rất nhiều!), Jamie

+7

Giữ một bộ đếm, bắt đầu từ 0, và tăng thêm 1 mỗi vòng lặp. Sau đó, nếu 'truy cập% 3 == 0' thì đó là" mỗi vòng lặp thứ 3 ". Tương tự, 'truy cập% 4 == 0' cho" mỗi vòng 4 ". Làm thêm toán theo yêu cầu. –

Trả lời

23

Tại sao không thêm một bộ đếm và sử dụng phương pháp mô đun để tìm hiểu trong mỗi cột gì yếu tố bạn đang lặp lại.

Giả sử bạn có 4 cột như được chỉ định.
Bạn bắt đầu với counter = 1
1% 4 = 1 (bạn đang ở trong các yếu tố đầu tiên)
2% 4 = 2 (bạn đang ở trong Yếu tố thứ hai)
3% 4 = 3 (bạn đang ở trong Yếu tố thứ ba)
4% 4 = 0 (bạn đang ở trong Yếu tố thứ tư)
5% 4 = 1 (bạn đang ở trong các yếu tố đầu tiên)
6% 4 = 2 (bạn đang ở trong Yếu tố thứ hai)

Và bạn chỉ cần sử dụng câu lệnh If với lớp như sau

<?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

thực hiện từ các ý kiến ​​đưa ra:

<?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

Nhưng bạn không đặt lại '$ class' trên mỗi vòng lặp. Khi '$ class = 'omega';' xảy ra, '$ class' sẽ luôn là' omega'. '$ class = '';' phải nằm trong vòng lặp while. –

+1

bạn là đúng :) – JvdBerg

Các vấn đề liên quan