How-To Geek
How to Display all Posts on the Category Page in WordPress
One of the gripes I’ve always had with the built-in WordPress functionality is that you can only specify the number of posts per page across the entire application, as opposed to being able to customize it per section or page. Thanks to a wonderful plugin by Matt Read, you can fix this easily.
First, you’ll want to grab the plugin from his website and install it. If you are unaware, that means unzipping and uploading the file into your BLOGROOT/wp-content/plugins/ directory.
Update: Looks like the original page is down, so here’s a mirror copy:
He’s got a donate button. If this article helps you, then donate money to him, not me.
Once the plugin is installed, you will navigate in your control panel to the Plugins page, and Activate the CQS plugin. Head over to Options / CQS and you should be presented with this screen.
I’ve already customized mine… you should change the Query dropdown to “is_category”, set the Show condition to -1 (for all posts), and click the Add button.
I’ve also gone further and added a new condition so the Home page only shows 5 posts per page. I dislike cluttered homepages.
Got Feedback? Join the discussion at discuss.howtogeek.com
Comments (3)
Programmer by day, geek by night, The Geek, also known as Lowell Heddings, spends all his free time bringing you fresh geekery on a daily basis. You can follow him on Google+ if you'd like.
- Published 09/26/06





Good instructions! Unfortunately, that plugin doesn’t work with the latest version of WordPress (i.e. 2.3+).
Here’s a fix:
Replace the
“SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = ”
line with
“SELECT term_id FROM $wpdb->terms WHERE slug = “
There is an updated version of this plugin for quite a while… since 2007:
http://moshublog.com/2007/10/30/custom-query-string-reloaded-for-wordpress-23-with-tag-support/
Sounds like a useful plug-in, but I can’t see every using the -1 value for anything. Most of my categories have well over 100 posts- the load time for that would be insane!