Как добавить класс к каждому N-му элементу в цикле php (wordpress)

У меня есть цикл 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 ?>

Как я могу добавить класс 'alpha' к каждому (4n-3) - му div (div.четыре.столбцы)и класс "omega" для каждого (4n) - го элемента с использованием php?

Спасибо (большое!), Джейми!--2-->

2 ответов


почему бы не добавить счетчик и использовать модульный подход, чтобы узнать в каждом столбце, какой элемент вы в настоящее время Эхо.

допустим, у вас есть 4 столбца, как указано.
Вы начинаете с counter = 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 ?>

реализация от замечания:

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