2

I am trying to detect each 4th post to insert extra code in my layout in wordpress using modulus method but I just cant get it.

Here is a short example of mine:

<?php if (have_posts()) : ?>
<?php $count=0;?>   
<?php while (have_posts()) : the_post(); ?>

<div class="column">

<!--content-->

</div> 

    <?php
            if ($count % 4 == 0){     
                echo '<div class="clear"></div>';
            }      
            $count++;       
            ?>

<?php endwhile; ?>
<?php endif; ?>

all that is inside the while loop. What am I doing wrong? Thank you.

devjs11
  • 1,898
  • 7
  • 43
  • 73

2 Answers2

6

You need to start your counter at 1, as you are increasing it at the end of the loop:

<?php $count=1;?>

Either that, or you increase it at the start of the loop / before the check:

<?php
        $count++; 
        if ($count % 4 == 0){     
            echo '<div class="clear"></div>';
        }            
?>
jeroen
  • 91,079
  • 21
  • 114
  • 132
3

When it comes to things like this, I always increment one on the if statement before calling modulo like so:

if(($count+1)%4 == 0)

This way it's easy for me to make a mental note that the statement naturally reads "if the current count is the 4th one then do:"

Andreas Wong
  • 59,630
  • 19
  • 106
  • 123