WP_Query by just the id?

In the codex for WP_Query I see you can query by page_id=7 for pages or by p=7 for posts. Is there a way to get a post of any post type by ID? Like id=7 that will get it no matter if it’s a page, post or custom post type?

I can only get WP_Query with p=7 to work if I add &post_type=customposttype. Is there a way to get it from the ID regardless of the post type?


any should retrieve any type:

$args = array(
  'p'         => 42, // ID of a page, post, or custom type
  'post_type' => 'any'
$my_posts = new WP_Query($args);

Note the description of any in the documentation:

‘any’ – retrieves any type except revisions and types with ‘exclude_from_search’ set to true.

For more information, have a look at the documentation of WP_Query.

Leave a Comment