
Does your project call for you to insert an ad, graphic, or some other type of content between posts? If so, there’s a very easy solution.
A typical loop looks like this, taken from the twentyfourteen theme:
if ( have_posts() ) :
while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() );
endwhile;
else :
get_template_part( 'content', 'none' );
endif;
The trick is using the modulus operator (%), which gives you the remainder after dividing by a number (think back to elementary school).
You need to set a counter variable ($counter = 1) and increment it by one after each post ($counter++). Wherever the remainder is equal to 0, we display our custom code. Otherwise, display the regular post.
In this example, I’m inserting some code for every 4th post:
php if ( $counter % 4 == 0 ): // your ad code here else: // regular post endif; ?>
Now with everything together:
php
if ( have_posts() ) :
$counter = 1; //initialize the counter
while ( have_posts() ) : the_post();
if ( $counter % 4 == 0 ):
// your ad code here
else:
get_template_part( 'content', get_post_format() );
endif;
$counter++; //increment by 1
endwhile;
...
endif;
?>
Every theme is different, so don’t copy and paste this code directly into your theme file.