从Wordpress中获取自定义帖子类型的所有图像

时间:2015-05-16 09:46:23

标签: wordpress custom-post-type portfolio

我正在研究一个投资组合WordPress主题,并尝试抓住并显示投资组合单页中的每个图像。

我正在使用以下代码,但它无效。

<div class="thumb">
   <?php 
   $args = array(
       'post_type' => 'attachment',
       'numberposts' => -1,
       'post_status' => 'any',
       'post_mime_type' => 'image',
       'post_parent' => $post->ID
   );

   $attachments = get_posts($args);
   if($attachments) : ?>
       <ul class="portfolio-image-list">
           <?php foreach ($attachments as $attachment) : ?>
           <li class="box">
               <figure>
                  <?php the_attachment_link($attachment->ID, true); ?>
               </figure>
            </li>
            <?php endforeach; ?>
        </ul>
   <?php else: ?>
        <div class="box">
           <p>No images found for this post.</p>
       </div>
    <?php endif; ?>

</div>

请帮忙。

1 个答案:

答案 0 :(得分:2)

您正在尝试检索帖子列表,而不是检索相关帖子的附件。您需要检索“附件”类型的子对象:

$args = array(
  'post_type' => 'attachment',
  'posts_per_page' => -1,
  'post_status' => 'any',
  'post_mime_type' => 'image',
  'post_parent' => $post->ID
);

$attachments = get_children( $args );

但您现在可以使用&#39; get_attached_media&#39;功能使这更容易。尝试用以下代码替换$ attachments行:

$attachments = get_attached_media( 'image', $post->ID );

如果仍然不起作用,您可以在模板中临时添加die($post->ID);,并确保它正确输出帖子ID。如果没有,请确保您在The Loop中运行代码,以便$ post-&gt; ID可用。