How do I add a class to every nth item in a php loop (wordpress)

I have a Wordpress loop as follows:

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

How can I add an 'alpha' class to every (4n-3)th div (div.four.columns) and an 'omega' class to every (4n)th item using php?

Thanks (a lot!), Jamie

Answers


Why not add a counter and use the modulus approach to get to know in every column what element you are currently echoing.

Lets say you have 4 columns as specified. You start with counter = 1 1 % 4 = 1 ( you are in the first element ) 2 % 4 = 2 ( you are in the second element ) 3 % 4 = 3 ( you are in the third element ) 4 % 4 = 0 ( you are in the fourth element ) 5 % 4 = 1 ( you are in the first element ) 6 % 4 = 2 ( you are in the second element )

And you just use an If statement with the class as following

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

Implementation from the comments made:

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

Need Your Help

How to detect a click on a polyline

android google-maps polyline

If there is a polyline on googlemap and a click is performed on the map, then how can I check whether that click was on polyline or somewhere else?

JPA Hibernate many-to-many cascading

hibernate jpa many-to-many jpa-2.0 cascade

I am using JPA 2.0 and hibernate. I have a User class and a Group class as follows: