I have a gallery attached to a page. On that page, I’m running the following query:
$events_gallery = new WP_Query( // Start a new query for our videos
array(
'post_parent' => $post->ID, // Get data from the current post
'post_type' => 'attachment', // Only bring back attachments
'post_mime_type' => 'image', // Only bring back attachments that are images
'posts_per_page' => '3', // Show us the first three results
'status' => 'inherit', // Inherit the status of the parent post
'orderby' => 'rand', // Order the attachments randomly
)
);
I’ve experimented quite a few ways and, for some reason, I can’t get attachments to return. Am I missing something obvious here?
Update*
Thanks to Wok for pointing me in the right direction.
It turns out I was using “status” instead of “post_status”. The codex had used “status” as the example in its in-context explanation of the “attachment” post type. I updated the codex to reference “post_status” instead. The correct code is as follows:
$events_gallery = new WP_Query( // Start a new query for our videos
array(
'post_parent' => $post->ID, // Get data from the current post
'post_type' => 'attachment', // Only bring back attachments
'post_mime_type' => 'image', // Only bring back attachments that are images
'posts_per_page' => '3', // Show us the first three results
'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
'orderby' => 'rand', // Order the attachments randomly
)
);
These are the query parameters i use…works for me when i loop through the results
For more detail, please see official documentation for WP_Query’s status parameters
Add in
$args
, it is important.Do not:
'post_status' => null
This is important because attachments don’t have a
post_status
, so the default value forpost_status
,published
, will find no attachments.Looking at the query it generates, it does appear to be a bug of sorts. ‘status’ => ‘inherit’ is interpreted as the parent’s status, when the entry in the db for the attachment is literally ‘inherit’.
An alternative is to use get_children in place of WP_Query.
I’ve been able to display all images that are attachments to a post using this code.
And to echo the URL of the original full size image, you could link that image off to
Hopefully this is an approach to what you’re trying to do.