web-dev-qa-db-ja.com

投稿に添付されている画像のURLをすべて取得するにはどうすればよいですか。

私は高値と安値を検索しましたが、取得できないようです。

カスタム投稿タイプの投稿に添付されているすべての画像を含むXMLフィードを出力しようとしています。

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

Wp_get_attachment_urlを使用していますが、1つの画像しか返されません(投稿ごとに複数の画像があります)。

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

<Picture>は繰り返し要素であるため、別の画像が添付されたときに新しいツリーを開始するはずです。

どんな助けでも素晴らしいでしょう!

1
Marco

あなたはあなたのポストループ内の添付ファイルをループし、これであなたがポストしたコードのセクションを置き換える必要があります(これをまとめると 他の似たような問題に関連するコードですが テストできませんでした。

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

編集 - 質問者の編集に基づいて更新されます。

1
Jason Murray