Wordpress从帖子中获取第一张图片

时间:2011-11-13 11:09:19

标签: php wordpress loops echo

试图从帖子中获取第一张图片,但我的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; ?>

我不确定出现了什么问题,因为我使用类似的代码来获取所有图片附件,而不只是一个,而且工作正常。

2 个答案:

答案 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,然后用它来检索图像的大版本。