我正在研究一个投资组合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>
请帮忙。
答案 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可用。