I have a pretty common loop:
global $wp_query, $wpdb;
if ( have_posts() )
{
while ( have_posts() )
{
the_post();
get_template_part(
'template_parts/content'
,get_post_format()
);
}
}
else
{
get_template_part( 'no_results' );
}
Now I need to add (for example) a <hr />
after each single post, but not the last one.
How would I determine if I currently got the second to last post in the current loop?
Note: This should work for paged loops as well.
another possibility:
It would be okay to remove $wpdb too because it is not being used anywhere in this example.
Actually it’s pretty easy:
Calling the global with
$GLOBALS['wpdb']
will allow modifying the global itself. Therefore I use a custom, prefixed property namedwpse_post_in_loop
to not in interfere with core settings, properties, etc.The above line is just for elegance. If you want to keep this fast, it’s better to do the
count()
part in front of the loop.