web-dev-qa-db-fra.com

Comment obtenez-vous toutes les URL d'images attachées à un message?

J'ai cherché haut et bas et n'arrive pas à l'obtenir.

J'essaie de générer un flux XML avec toutes les images associées à une publication à partir d'un type de publication personnalisé:

</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>

J'utilise wp_get_attachment_url mais cela ne renvoie qu'une image (il y en a plus d'une par message)

        <?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID)); ?>

Le <Picture> est un élément qui se répète, il devrait donc commencer une nouvelle arborescence quand une autre image est attachée.

Toute aide serait incroyable!

1
Marco

Vous devez parcourir les pièces jointes dans votre boucle de publication, remplacer la section de code que vous avez postée par ceci (rassemblez ceci depuis un autre code que j'ai trouvé lié à un problème similaire, mais n'a pas pu le tester):

</BasicDetails>
<?php  $args = array(
            'post_parent'    => $post->ID,
            'post_type'      => 'attachment',
            'numberposts'    => -1, // show all
            '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 - Mise à jour en fonction des modifications du demandeur.

1
Jason Murray