I’ll be honest here, until recently, while I had been building WordPress queries on a daily basis, I still really didn’t know the way the WordPress query is build and the best way to modify it.
I guess I wasn’t alone, and Automattician guru Andrew Nacin came up with the perfect antidote at WordCamp Portland, delivering a classic talk called ‘You Don’t Know Query’.
It’s a 40 minute guide to WordPress queries that should straighten things out for you once and for all. Be warned though, it’s not very easy to understand the concepts Andrew discusses here, I had to listen through it twice and make reference to the Codex to really understand what he was saying.
Slides:Β http://www.slideshare.net/andrewnacin/you-dont-know-query-wordcamp-portland-2011
What I found missing in Andrew’s speech, were a few case studies and discussion about queries in simpler terms. Thankfully, I soon came across an excellent article by Bill Erickson that really broke things down into a simple guide for us to follow when dealing with WordPress queries. It’s an essential read if you want to learn how to query properly.
Here’s another similar post if you want a slightly different take on the subject:
http://developer.wordpress.com/2012/05/14/querying-posts-without-query_posts/
An important takeaway from all these articles:
To modify main loop
- don’t useΒ
query_posts()
- useΒ
pre_get_posts
Β filter withΒ$query->is_main_query()
Β check - alternately useΒ
request
Β filter (a little too rough so above is better)
To run secondary loop
UseΒ new WP_Query
Β orΒ get_posts()
Β which are pretty much interchangeable (latter is thin wrapper for former).
Where you already making the best use of WordPress queries? Any other tips to share? The comments are open!
If you enjoyed this post, make sure to subscribe to WP Mayor’s RSS feed.