If I understood this issue correctly the problem with your current code is that you are incrementing $totalPosts variable inside the while loop, so the variable gets incremented after every post thus resulting in the running order you described.
To get the amount of posts returned matching the query, use $loop->found_posts
(in this case)
More information, examples and documentation about the WP_Query
can be found from WordPress Codex
Related Posts:
- Can I force WP_Query to return no results?
- Multiple WP_Query loops with Pagination
- WP_Query and next_posts_link
- Order posts by ID in the given order
- Too slow when using both ‘tax_query’ and ‘meta_query’ both in WP_Query
- Get array of posts from the current archive page loop
- How can I save an array from a random post sequence for later use?
- How to place a loop within another loop?
- In loop: posts have thumbnail AND other variables
- How to order category.php loop by ‘meta_value’?
- Pagination/infinite scroll with WP_Query and multiple loops
- Add inline HTML to posts published within last 24hrs
- Move posts to top of WP_Query if in certain Taxonomy?
- Display different number of posts from one category on the different pages
- Pagination not working Search posts
- How to change a custom query into a standard loop?
- Can certain (site-crashing) limitations on WP_Query in shortcode be overcome?
- wordpress query in header won’t reset and corrupts other loops
- Implementing an OR statement to wordpress wp_query
- Get List of all the Authors
- 2 loops on page – one with orderby rand second orderby date
- Undefined WP_Query::has_posts()?
- WP_Query loop within WP_Query loop
- Refine search results using WP_Query
- How to pass many ids in post__in?
- How to use WP_Query to display many posts?
- How to show subcategories using loop?
- Counter problem, infinite loop when post_per_page equals X
- Sub-loop / nested loops Best Practices
- Five posts from a category in footer
- Show Sticky Post at the top but do not show again in the loop?
- Any number in meta key (wp query)
- How to get all unique categories for posts in loop?
- How do I run through a WordPress loop called from a filter function?
- How do I get the title of a category in a custom loop?
- Order by empty custom field
- Out Of memory issue on post per page parameter
- Check if loop has any categories?
- WordPress query with items from more than one selfdefined taxonomy as `term` argument
- Get all fields inlcuding “ACF” (Advanced Custom Fields) columns in wp_query
- New WP_Query loop in admin causes problems
- Change query from cat id to slug or name?
- Using Wp_Query without the loop?
- Custom WP_Query id
- Assign custom parameter to each post in query
- Check for the main query from the template
- Exclude recently updated post from custom WP_Query using multiple loops
- get_posts output always same post
- How to use WP_Query() on single.php?
- difference between querying database and using the loop
- Stomping WP_Query in author archive to facilitate pagination with custom queries
- How to make posts unqueryable/unpublish posts where ACF relationship field is an unpublished post? [closed]
- Loop increase in while loop not working
- posts archive page – closing WP_Query loop correctly [closed]
- AJAX Breaking Offset Argument In WP Query
- Continue or break the while loop
- Loop posts based on permalink term
- Loop 3 posts column wise and continue the loop into same columns
- Check if a post has term inside loop
- How to Order By Two Custom Fields?
- Display specific page (that is child) content on parent page
- Does putting queries within loops cause an issue on WordPress?
- Query Taxonomy By Page Title
- Function using get_posts() with tax_query not working when called from functions.php
- How to change the default post type over the loop?
- Query Not working as expected
- Determine if ID is page or post and query the ID
- How to make the ‘request’ filter work?
- get_children() Archive Template
- Populate select list with meta values from all posts of a Custom Post Type
- show most viewed post
- How do I stop the same post showing multiple times in a archive?
- Bootstrap grid while loop
- how to get custom attachment url?
- Display posts side by side with custom query
- WP_Query & Duplicate entries
- Calling a function with WP_Query only ever brings the first result
- query_posts() doesn’t seem to be called in my page
- Some doubts about how the main query and the custom query works in this custom theme?
- Pagination returns 404 after page 20
- WP_Query a custom field value bringing back 0 results
- Set Transient on CPT
- Create multiple sections for all categories and then queries all the posts for each of those categories
- Load 3 posts in flexslider slide [closed]
- Issue with WP_Query (need a array of selected ID’s)
- Next / previous posts link doesn’t show up with Posts 2 Posts
- How to exclude posts ordered by comment_count from subsequent wordpress loops using WP_Query?
- meta_query dates from an array
- Creating array to compare custom field values
- $query conflicting with other queries in the same page
- WordPress Post Looping? [duplicate]
- Carousel Loop only duplicating
- Remove 5 latest posts from the loop
- Exclude post formats in custom loop
- How to show featured post first, then separate loop for other posts
- Show linked products using wp query and woocommerce
- Standard Loop – wp_query
- Custom Wp_query loop takes very long
- Query All Posts: Either Display Most Recent or One with Particular ACF Value Chosen
- How to get rid of extra Untitled Article in html5 document outline when using new WP_Query?