Select posts with any post_type from database?

By default– that is, unlss told otherwise– WP_Query will search the post post type. You may supply 'post_type' => 'any' to retrieve all post types, but be aware that things like attachments are post types. For example…

$args = array(
  'post_status' => 'publish',
  'posts_per_page' => -1,
  'ignore_sticky_posts' => true,
  'post_type' => 'any'
);
$qry = new WP_Query( $args );
var_dump($qry->request);

Post types set as not searchable, such as the menu post type (which has no business being a post type at all IMHO), will be ignored. If you need those odd-ball post types, you will need to list them. get_post_types() should help with that.

$args = array(
   'post_status' => 'publish',
   'posts_per_page' => -1,
   'ignore_sticky_posts' => true,
   'post_type' => get_post_types(),
);
$qry = new WP_Query( $args );

Leave a Comment