Come ottenere tutti gli URL delle immagini allegate a un post?
Ho cercato ovunque ma non riesco a trovare una soluzione.
Sto cercando di generare un feed XML con tutte le immagini allegate a un post di un custom post type:
</BasicDetails>
<Pictures>
<Picture>
<PictureUrl><?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID)); ?></PictureUrl>
<Caption></Caption>
</Picture><Picture>
<PictureUrl></PictureUrl>
<Caption></Caption>
</Picture>
</Pictures>
Sto usando wp_get_attachment_url ma restituisce solo un'immagine (ce ne sono più di una per post)
<?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID)); ?>
Il tag <Picture>
è un elemento ripetuto quindi dovrebbe creare un nuovo nodo per ogni immagine allegata.
Qualsiasi aiuto sarebbe fantastico!
Devi scorrere gli allegati all'interno del tuo ciclo del post, sostituisci la sezione di codice che hai postato con questo (ho messo insieme questo codice da altro codice che ho trovato relativo a un problema simile, ma non ho potuto testarlo):
</BasicDetails>
<?php $args = array(
'post_parent' => $post->ID,
'post_type' => 'attachment',
'numberposts' => -1, // mostra tutti
'post_status' => 'any',
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'ASC'
);
$images = get_posts($args);
if($images) { ?>
<Pictures>
<?php foreach($images as $image) { ?>
<Picture>
<PictureUrl><?php echo wp_get_attachment_url($image->ID); ?></PictureUrl>
<Caption><?php echo $image->post_excerpt; ?></Caption>
</Picture>
<?php } ?>
</Pictures>
<?php } ?>
<Agent>
MODIFICA - Aggiornato in base alle modifiche richieste.

@Marco assumendo che qualche tipo di codice php segua immediatamente questo pezzo di codice, l'ultimo tag dovrebbe essere aperto sì, se stai echoando altri tag puoi semplicemente mettere un ?>
alla fine. Quindi sarà come postato <?php }
oppure <?php } ?>

Capisco, anche se ho aggiunto l'istruzione if(
sopra in function.php e ha fatto crashare il mio sito. Avrei dovuto menzionare che stavo usando un tema commerciale che è molto personalizzato.

@Marco puoi aggiornare la domanda con l'intera sezione di functions.php relativa a questo e qualsiasi codice front end?

@Marco ho aggiornato la soluzione e fornito un po' di contesto all'inizio e alla fine del blocco di codice, fammi sapere come va. Se dovesse diventare di nuovo schermo bianco, puoi attivare wp_debug in wp-config.php e verificare quale errore viene visualizzato?

lo proverò non appena il mio server tornerà online (non correlato ma non usate bluehost)

Fantastico!! Se fossi a NYC ti offrirei una birra. Ho ancora un problema, il post_per_page per qualche strana ragione si blocca a 45. Quando metto -1
ottengo un errore di parsing. Hai qualche idea?

@Marco Magari! Potresti provare ad aggiungere nopaging => true,
agli argomenti della tua query dei post vicino all'inizio.

haha, beh fammelo sapere se mai succede! nopaging non sembra aver funzionato. Forse dovrei aprire una nuova domanda.

Continuiamo questa discussione nella chat.
