The question:
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?
The Solutions:
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.
Method 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.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0