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?

1 Answer 1


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.

  • 15
    for specifics or multiple post try $query = new WP_Query( array( 'post_type' => 'any', 'post__in' => array( 2, 5, 12, 14, 20 ) ) ); you can use postTypes = page, post, any ; Feb 15, 2018 at 15:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.