Home » Php » php – WordPress loop : get current post count inside The Loop

php – WordPress loop : get current post count inside The Loop

Posted by: admin July 12, 2020 Leave a comment

Questions:

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

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

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

How to&Answers:

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.

Answer:

Why not incrementing a variable then display your ads when needed?

while(LOOP)
    echo $i%3==0 ? $ad : '';
    $i++

Answer:

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.