This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Shaun's WP Query Shortcode


Written as a platform for plugin developers, this simple-yet-powerful plugin allows you to run a custom WP_Query using shortcode, then display the results any way imaginable using compatible nested shortcodes.

How It Works

Add the following shortcode to any WordPress post or page:

[wpquery orderby="rand"] [wpq_index] [/wpquery]

In the example above, the [wpquery] shortcode performs a WP_Query using orderby=”rand” to display the results in random order. A full list of query parameters can be found here: WP_Query.

Next, the nested [wpq_index] shortcode displays the results of the custom WP_Query as an unordered list of post title links.

Why It Rocks

Written as a platform for plugin developers, this simple-yet-powerful plugin allows developers to write compatible plugins that manipulate the way post data is displayed – without needing to write functions and shortcode parameters to first retrieve the post data.

The [wpq_index] shortcode function included in this plugin is just a simple example of what it can do. Any plugin that performs a WP_Query could be rewrtitten and optimized to work with this plugin, eliminating a lot of unnecessary code.

Best of all, this plugin gives users total control over the WP_Query being performed!


  • A basic example of how to use this plugin
  • Code that can be used as a template to write a compatible plugin


  1. Upload shauns-wp-query-shortcode.php to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. In a post or page, place the nested shortcode: [wpquery] [wpq_index] [/wpquery]
  4. Replace [wpq_index] with shortcode from any other compatible plugin


Why did you develop this plugin?

Two of my earlier plugins – SortTable Post and jqDock Post Thumbs – essentially did the same thing: They got post data via WP_Query, then used a Javascript library to display certain information in a unique and interesting way.

Many of the feature requests I received for those plugins came from folks who wanted more granular control over the data that was retrieved by WP_Query (e.g. only show posts of a particular category / tag / post-type / taxonomy).

The only way I could accommodate those feature requests was to add more shortcode parameters to the plugin, but I was also adding shortcode parameters to handle how the post data was displayed. After a while, things started getting out of hand.

This plugin was the solution.

By separating the shortcode for ‘getting post data’ from the shortcode for ‘displaying post data’, I was able to simplify the shortcodes for users.

What shortcode parameters does `[wpquery]` accept?

It accepts all of the same parameters as WP_Query.

Where can I find compatible plugins?

Going forward, all of my plugins that use WP_Query will require this plugin to be installed. You can find my plugins here: Shaun’s Profile

To find compatible plugins written by other authors, try searching the WP Plugin Repository for “Shaun’s WP Query Shortcode”.

If you’re real savvy, you can even write your own compatible plugins! Just use the mnsp_wpq_index function that comes with this plugin as a template…and if you upload it to the repository, make sure you let people know that it requires Shaun’s WP Query Shortcode to work!

How can I request support or report a bug?

Please post your question as a comment on the apporpriate plugin page of my website:


There are no reviews for this plugin.

Contributors & Developers

“Shaun's WP Query Shortcode” is open source software. The following people have contributed to this plugin.




  • Modified the wpq_index shortcode function to exclude the current post/page from the list.


  • Added function to detect array expressions in shortcode parameters and convert them to arrays. This allows you to set WP_Query parameters such as category__and, category__in, category__not_in, etc.
  • Thanks to Netcoder for providing this solution!


  • First public release.