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
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?
Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.
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.