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

I’m trying to get a count of the current posts inside of a loop. I’m using multiple loops on one page in my theme. So far I have:

$my_post_count = $wp_query->post_count;

But when I print $my_post_count, it returns the number all of the posts on my WP site. Could it have something to do with using multiple queries on one page? I tried using wp_reset_query after every loop to make sure I wasn’t throwing things off that way. What am I doing wrong?


$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);

Leave a Comment