WordPress loop : get current post count inside The Loop

When inside The Loop, I want to retrieve the current post count.

For example, after every 3 posts, I want to insert an ad.

Read More

So, how do I get the value of the loop count?

Related posts

Leave a Reply

3 comments

  1. You can use the current_post member of the WP_Query object instance to get the current post iteration;

    while ( have_posts() ) : the_post();
    
        // your normal post code
    
        if ( ( $wp_query->current_post + 1 ) % 3 === 0 ) {
    
            // your ad code here
    
        }
    
    endwhile;
    

    Note, if you’re using this inside a function, you’ll need to globalise $wp_query.

  2. Unsure why, but the suggested methods didn’t work out for me, I had to resort to the following

    $loop_counter = 1;
    while( $query->have_posts() )
    {
        //Do your thing $query->the_post(); etc
    
        $loop_counter++;
    }
    

    Safer than playing with globals if you ask me.