Select posts with any post_type from database?

I’m trying to select all rows from the database regardless of post type, however when suppressing post_type WP_Query only gets rows with post_type = "post" is there a way to suppress the post_type filter (or select all post types)?

// This just selects post_type = "posts"
$args = array(
 'post_status' => 'publish',
 'posts_per_page' => -1,
 'ignore_sticky_posts' => true,
);
$qry = new WP_Query( $args );

Related posts

1 comment

  1. 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 );
    

Comments are closed.