Non funzionante? WP_Query e "attachment" come tipo di post
Ho una galleria allegata a una pagina. Su quella pagina, sto eseguendo la seguente query:
$events_gallery = new WP_Query( // Avvia una nuova query per i nostri video
array(
'post_parent' => $post->ID, // Ottieni dati dal post corrente
'post_type' => 'attachment', // Recupera solo gli allegati
'post_mime_type' => 'image', // Recupera solo gli allegati che sono immagini
'posts_per_page' => '3', // Mostra i primi tre risultati
'status' => 'inherit', // Eredita lo stato del post genitore
'orderby' => 'rand', // Ordina gli allegati in modo casuale
)
);
Ho sperimentato diversi modi e, per qualche motivo, non riesco a ottenere gli allegati. Mi sfugge qualcosa di ovvio?
Aggiornamento*
Grazie a Wok per avermi indirizzato nella giusta direzione.
Si è scoperto che stavo usando "status" invece di "post_status". Il codex aveva utilizzato "status" come esempio nella sua spiegazione contestuale del tipo di post "attachment". Ho aggiornato il codex per fare riferimento a "post_status". Il codice corretto è il seguente:
$events_gallery = new WP_Query( // Avvia una nuova query per i nostri video
array(
'post_parent' => $post->ID, // Ottieni dati dal post corrente
'post_type' => 'attachment', // Recupera solo gli allegati
'post_mime_type' => 'image', // Recupera solo gli allegati che sono immagini
'posts_per_page' => '3', // Mostra i primi tre risultati
'post_status' => 'inherit', // Gli allegati hanno come default "inherit", invece di published. Usa "inherit" o "any".
'orderby' => 'rand', // Ordina gli allegati in modo casuale
)
);
Sì, come mai funziona? Non riuscivo a far apparire il mio allegato nella pagina dell'archivio finché non ho aggiunto questo.

Questi sono i parametri della query che utilizzo... funzionano per me quando ciclo attraverso i risultati
array(
'post_parent' => $post->ID,
'post_status' => 'inherit',
'post_type'=> 'attachment',
'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'
);
Per maggiori dettagli, consulta la documentazione ufficiale per i parametri di stato di WP_Query

Analizzando la query che genera, sembra effettivamente esserci un bug di qualche tipo. 'status' => 'inherit' viene interpretato come lo stato del genitore, quando invece la voce nel database per l'allegato è letteralmente 'inherit'.
Un'alternativa è utilizzare get_children al posto di WP_Query.

Sono riuscito a visualizzare tutte le immagini allegate a un post utilizzando questo codice.
<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
foreach ( $attachments as $attachment ) { ?>
<img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php }
} ?>
Per ottenere l'URL dell'immagine originale a dimensione intera, puoi collegarla a
<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>
Spero che questo approccio sia utile per quello che stai cercando di fare.

La paginazione funziona con questo? E puoi mostrare il resto del tuo codice di output? Sono nel mezzo della ricodifica della galleria di un tema per effettivamente paginare gli allegati presenti nella pagina. Grazie!

Se carico 4 immagini in un post, e aggiungo questo nel div principale del contenuto in single.php, genererà semplicemente 4 tag immagine. Il src= di ognuno porterà alla dimensione originale grande dell'immagine.
La paginazione non funziona con questo, poiché genera tutte le immagini allegate al post.
