Wordpress - Get post count of current loop when using multiple queries on one page

$wp_query hold main loop of page and should not be used to create multiple loops.

If you are using new WP_Query object then your variable that holds it will have according count:

$my_query = new WP_Query();
// stuff
$count = $my_query->post_count;

If you are using get_posts() then WP_Query object is not accessible and you should just count returned set:

$posts = get_posts();
$count = count($posts);

I believe the post_count is stored in the global, so before the custom loop you should set it to 0, since you can use it outside the loop, but this depends on how you are structuring your multiple query's, maybe you can add them to your post?

There is another way that I use within the loop that counts posts using current_post + 1, for example.

<?php $my_query = new WP_Query();?>
     <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();

           $count_posts = $my_query->current_post + 1; //counts posts in loop

     endwhile;?>

An alternative solution using WP_Query would be:

           <?php 
               $args = array(
               'post_type' => 'post'
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; 
            ?> 

Tags:

Loop

Wp Query