Cum să obții toate URL-urile imaginilor atașate la un post în WordPress
Am căutat peste tot și nu reușesc să găsesc soluția.
Încerc să generez un feed XML cu toate imaginile atașate la un post dintr-un tip de postare personalizat:
</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>
Folosesc wp_get_attachment_url dar returnează doar o singură imagine (Există mai multe imagini pe post)
<?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID)); ?>
Elementul <Picture>
este un element repetitiv, așa că ar trebui să înceapă un nou arbore când există o altă imagine atașată.
Orice ajutor ar fi minunat!
Trebuie să parcurgi atașamentele din bucla ta de postare, înlocuiește secțiunea de cod pe care ai postat-o cu aceasta (am compilat-o din alt cod pe care l-am găsit legat de o problemă similară, dar nu am putut să o testez):
</BasicDetails>
<?php $args = array(
'post_parent' => $post->ID,
'post_type' => 'attachment',
'numberposts' => -1, // afișează toate
'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>
EDIT - Actualizat pe baza modificărilor solicitate.

@Marco presupunând că un fel de cod php urmează imediat după această bucată de cod, ultimul tag ar trebui să fie deschis da, dacă mai afișezi alte tag-uri poți pune pur și simplu un ?>
la sfârșit. Deci va fi fie așa cum a fost postat <?php }
sau <?php } ?>

Am înțeles, deși am adăugat condiția if(
de mai sus în functions.php și mi-a crăpat site-ul. Ar fi trebuit să menționez că foloseam o temă comercială care este puternic personalizată.

@Marco poți actualiza întrebarea cu întreaga secțiune din functions.php legată de aceasta și orice cod din partea de front-end.

@Marco am actualizat soluția și am adăugat un pic de context la începutul și sfârșitul blocului de cod, spune-mi cum merge. Dacă ecranul devine din nou alb, poți activa wp_debug în wp-config.php și să verifici ce eroare apare?

o voi încerca imediat ce serverul meu revine online (Fără legătură, dar nu folosiți Bluehost)

Minunat!! Dacă ai fi în NYC, ți-aș cumpăra o bere. Mai am o problemă, post_per_page din nu știu ce motiv se limitează la 45. Când pun -1
primesc o eroare de parsare. Ai vreo idee?

@Marco Aș vrea! Puteți încerca să adăugați nopaging => true,
la argumentele interogării de postări, sus în cod.

haha, ei bine, dacă se întâmplă, dă-mi de veste! nopaging nu pare să funcționeze. Poate ar trebui să deschid o nouă întrebare.

Să continuăm discuția în chat.
