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...
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?
You can use 'post_type' => 'any' for fetching from all post types. See this documentation.
Note: It is highly recommended to use WP_Query rather than query_posts.
'post_type' => 'any',
This gets all posts except revisions.
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')
)
);
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,
]);