pshoeg
pshoeg

Reputation: 389

Get ALL post types in WordPress in query_posts

I'm using query_posts to get a list of most popular posts. I'm using several custom post types, and instead of including all of them in the query, I would like a query that just gets all of them, also if I create more.

This is what I have:

query_posts(array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
        'post_type' => array('posttype1', 'postype2', 'posttype3')
    )
);

If I don't include the post_type, it only gets the standard post type, post. Does anyone have an idea?

Upvotes: 18

Views: 33278

Answers (3)

Jules Colle
Jules Colle

Reputation: 11939

If you want to use get_posts(), the only work around is to use 'post_type' => get_post_types()

Example that returns ALL posts of ANY post type:

$posts = get_posts([
  'post_type' => get_post_types(),
  'post_status' => 'publish',
  'numberposts' => -1,
]);

Upvotes: 0

dee_ell
dee_ell

Reputation: 91

'post_type' => 'any',

This gets all posts except revisions. https://developer.wordpress.org/reference/classes/wp_query/#post-type-parameters

So your query would be:

query_posts(array(
    'post_type' => 'any',
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
        'post_type' => array('posttype1', 'postype2', 'posttype3')
    )
);

Upvotes: 2

Nilambar Sharma
Nilambar Sharma

Reputation: 1740

You can use 'post_type' => 'any' for fetching from all post types. See this documentation. http://codex.wordpress.org/Class_Reference/WP_Query#Type_Parameters

Note: It is highly recommended to use WP_Query rather than query_posts. https://wordpress.stackexchange.com/a/1755/27998

Upvotes: 27

Related Questions