Retrieve posts from multiple categories
-
Hi,
I would like to retrieve posts from multiple categories (eg: all posts with category IDs 5 and 17). How would I do this?
-
The Loop article in Codex has a Exclude posts from some Category that you could use with a few changes.
I’m not using it within the loop… making a custom list on the side.
Thanks for the help tho. I appreciate the effort š
If you’re retrieving posts, you’re always making a Loop. Maybe not THE Loop, but it’s a Loop nevertheless.
Yep… but I thought “The Loop” was the main post retrieval loop?
I’ve just rehecked the documentation at http://codex.ww.wp.xz.cn/The_Loop
The section provided by MichaelH is very useful, with a simple modification it would work as needed. However, the main question is how do I use this “the loop” for a sidebar module? Since “The Loop” deals only with posts/pages that will show up on that current page instead of ALL posts.
You just need a different kind of loop. This would be the best way to do it:
<?php $my_query = new WP_Query('showposts=5&whatever=whatever'); while ($my_query->have_posts()) : $my_query->the_post(); ?> <!-- Do stuff... --> <?php endwhile; ?>Basically, it’s a separate loop with some query parameters that you define directly.
Mmmm, won’t that be very inefficient tho, since I can only pass 1 category ID to WP_Query?
eg: 6000 posts, 2000 that match one category, of which 400 match the second category. that would retrieve 2000 posts (can’t retrieve less because say you want 5 posts. you won’t know that the first Z will contain 5 that also match the second category condition), then have to go through it to get the X posts.
since I can only pass 1 category ID to WP_Query?
Says who?
...new WP_Query('cat=5,17&showposts=5');Oh… ohhhh… wow, thanks buddy!
Is there any documentation to WP_Query? The ones I found (http://codex.ww.wp.xz.cn/Function_Reference/WP_Query and http://codex.ww.wp.xz.cn/User:DavidHouse/Wordpress_Code_Flow) doesn’t seem too helpful.
Specifically, does that display posts that match BOTH category 5 and 17, or is it “5 or 17”?
Also, how do I get the category ID that it is in, when in the loop?
Thanks again!
The WP_Query constructor takes the same arguments as query_posts() does.
And I think it gets any posts in “either 5 or 17”, actually. There does not appear to be any way to make it get posts in “both 5 and 17”.
To get category information for a post in the loop, use get_the_category().
hey charismabiz,
i had the same need as you and i managed to show only posts that were under two categories. i adapted the code from the following:
http://codex.ww.wp.xz.cn/Template_Tags/query_posts#Excluding_Multiple_Categories
it’s kinda dumb solution: i first queried one category with query_posts() and then narrowed to the posts that also were under the second category with the conditional in_category() placed inside the loop.
doing this way, wp will only show the overlapping subgroup of posts that are under both categories š
since I can only pass 1 category ID to WP_Query?
Says who?
…new WP_Query(‘cat=5,17&showposts=5’);This was exactly what i needed, thank you!!
One more thing… I have asked this on other threads without a response over last few months and so I hope this is topical here:
Now that I can retrieve posts from multiple categories, how do I limit it to only posts from the last X days? for example I want the last 7 days… any ideas?
Any idea how I can retrieve posts from multiple categories, but only limit them to posts from the last X days?
Sorry, but any idea how I can retrieve posts from multiple categories, but only limit them to posts from the last X days?
I can’t find codex info and I’m sure this is a need for others!
why is this place using such a poorly laid out forum? 90% of posts i’ve looked up in order to find an answer come to conclusions exactly like this thread. completely unanswered.
The topic ‘Retrieve posts from multiple categories’ is closed to new replies.