It was correctly pointed out what the issue is, but I also want to explain it so you have better idea of mechanics:
-
when you use
query_posts()
it writes down generatedWP_Query
object into global$wp_query
variable; -
have_posts()
andthe_post()
functions are wrappers for methods of same name called using global$wp_query
object; -
so what you are doing in that code is keep overwriting
$wp_query
and keep asking it if there are posts to process. And there are always posts because as soon as you process post you kick query back to new clean state.
Also see When should you use WP_Query vs query_posts() vs get_posts()?
Related Posts:
- Ensuring sticky posts are retrieved first (without using two queries)?
- Schedule Sticky Posts
- odd behaviours from template tags
- How to setup blog page to render blog posts minus afew categories
- posts_per_page no limit
- Alternative to query_posts for main loop? [duplicate]
- how to query posts by category and tag?
- Query posts by custom taxonomy ID
- How to return results of a get_posts() in explicitly defined order
- Query posts: how to exclude results if post is in multiple categories
- query_posts ->using meta_compare / where meta value is smaller or greater or equals
- How to order posts by descending comment count on taxonomy page?
- Is it better practice to use query_posts, WP_Query, or get_posts to create various custom loops within a Page?
- WP 5.8 “Query Loop” block: where to place custom query?
- Sort X categories by last update and show image
- Pagination on archive.php page
- Best way to load page content in Fancybox popup?
- order post my meta value m/d/y format with year as included value
- _wp_page_template to dynamically use template
- Total Count of Posts NOT in Selected Categories?
- WordPress Search Filter Only for Page with Child of Child of Child of Child of Child
- Problem with single-page for my custom post
- Warning: urlencode() expects parameter 1 to be string, array given in and not getting the preffered output
- How to modify the query to exclude posts by slug?
- How to make the list of post and load on same page with sub-pages [closed]
- How to get 4 Posts after the 5 most recent ones
- post_status => publish not working
- How to fetch all posts in a category that were published between two given dates?
- How do I make archives.php for one category only?
- get_meta_data within a loop
- making random query button using $_GET
- Is it possible to query_posts using post__in and then Loop through them in the ordered they were queried?
- How do I change the default sort order of a custom column on the posts page?
- how to exclude “featured” posts from the main loop?
- WordPress pagination showing same posts on each page
- pass query string on url to filter media
- Order posts by condition
- Co-authors plus problems with query_post
- Error sending array of inputs
- Search breaks when querying main loop for category
- Authors List page – How to include only those with wp_user_level as Author
- Adding conditional content to single post-type template
- Hook to return true when the_post() is used in a custom while loop
- Query posts by meta_key whose value is an array
- Show Blogroll of another WordPress site
- Proper syntax to add boolean in array()
- using query_posts to pull posts out of a category in a while loop. Getting odd echo
- Echo a numerical value in query_posts
- why to use query_posts() in custom page?
- Query posts to get all but the most recent post
- Always using the same ARRAY on different querys
- Currently using a query_posts() in my theme – want to use a request filter in stead
- How do I use pagination in WordPress?
- Breadcrumbs stop working on a specific template file
- Does WordPress run a post query when a page is invoked?
- Multiple posts/pages in one page?
- Order for custom field after the loop
- Custom post query error
- Multiple instances of query_posts
- Different layout based on post amount?
- If Query Post Returns 1 Post
- How to check a list or feed of all posts under a category and tag?
- Calling Posts from Specified Cat
- Keeping get_posts’ offset and is_paged() synchronized
- How do I add a timezone offset to this query?
- query_posts thumbnail condition
- Show posts from specific roles
- How to add an “or” instead of and “and” (&) in a WordPress query?
- Instead of 4 loops, how can I do it better?
- How to get any type posts include attachments by ids?
- Modify main loop query for paged and meta key
- wordpress query_posts featured page always on top
- Create a Loop with Posts Ordered by Most Recent Comments
- Need to add a space after meta value in query_posts in wordpress for zipcode search
- Tax query get first product with attribute value in pre_get_posts
- Specifying image size used in template the_content
- allow user to edit posts made by others users based on the user role
- Ordering Posts By Meta Data
- Fetching $_POST from Page Template into functions.php
- No duplicate tags by category
- Order posts by ACF checkbox
- Post per page not working
- Show previous month’s posts
- why is pre_get_posts not working
- query_posts result differs from wp_query request result
- If meta_key has value = 6 | Change the wp_posts.post_date to current date
- Query posts based on parents attribute
- Adding Category Argument into an Array for WordPress Query
- Having trouble using this post category query on multiple pages?
- orderby not working for query_posts using array of IDs
- Collect posts from last 48 hours
- The_content display a different content from a previous loop
- How to go to tag archives using a form
- Run second query on page based on author of the first query
- WordPress loop problem: Multiple loops, index.php and is_paged causing duplicate posts on next page
- Why doesn’t this page query work?
- Resetting a Query using wp_reset_query() or wp_reset_postdata() does not work
- Sort posts with multiple meta_keys
- How to get custom post type posts with certain multiple tags names and category id?
- Create “archives by year and week” by category template