试图从帖子中获取第一张图片,但我的php代码没有返回任何内容,有什么帮助吗?
<?php while ($browndog_blog->have_posts()) : $browndog_blog->the_post();
$args = array(
'numberposts' => 1,
'post_mime_type' => 'image',
'post_parent' => $post->ID,
'post_status' => null,
'post_type' => 'attachment'
);
$attachments = get_children( $args );
//print_r($attachments);
if ($attachments) {
foreach($attachments as $attachment) {
$image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) : wp_get_attachment_image_src( $attachment->ID, 'full' );
echo '<a href="'.get_permalink($post->ID).'"><img src="'.wp_get_attachment_thumb_url( $attachment->ID ).'"></a>';
echo '<p>'.get_the_excerpt($post->ID).'</p>';
echo '<p><a href="'.get_permalink($post->ID).'">Read More</a></p>';
}
}
endwhile; ?>
我不确定出现了什么问题,因为我使用类似的代码来获取所有图片附件,而不只是一个,而且工作正常。
答案 0 :(得分:1)
get_children()
仅返回已直接上传到该帖子的图片。如果图像已附加到给定的帖子上,则不会将其视为其子项,因此不会被上述功能返回。
检查帖子的孩子的简单方法是登录仪表板并转到帖子,编辑帖子。点击编辑器上方的Add Media
按钮,然后从唯一的下拉框中选择Uploaded to this post
。如果这是空的,那么无论帖子的内容如何,get_children都不会返回任何图像。
答案 1 :(得分:0)
我认为我只是做了你想做的事情...我不会声称自己是一个大师,但这就是我为了让这个工作所做的一切,如果运气好的话,你将能够适应它满足您的需求。
$image_id=get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,’large’);
$image_url=$image_url[0];
基本上,数组中的第一个图像是缩略图,据我所知,这就是为什么我首先获取缩略图ID,然后用它来检索图像的大版本。