从wordpress post获取所有图像

时间:2015-03-09 15:15:12

标签: wordpress image post

使用此功能,我可以通过echo get_the_first_image()从帖子中获取第一张图片:

function get_first_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    $first_img = $matches [1] [0];
    if(empty($first_img)){ //Defines a default image
        $first_img = "path/to/default/image.jpg";
    }
    return $first_img;
}

我可以更改此代码,以便从数组或其他合适的内容中获取帖子中的所有图像吗?

2 个答案:

答案 0 :(得分:2)

有一段时间我正在寻找同样的事情,下面的代码从帖子中获得附加图像(确保在中使用此代码

$images =& get_children('post_type=attachment&post_mime_type=image&output=ARRAY_N&orderby=menu_order&order=ASC&post_parent='.$post->ID);

    if($images){
        foreach($images as $imageID => $imagePost){

            print_r($imagePost->guid); // for example the img path

        }
    }

希望这会有所帮助。它也适用于我自定义帖子类型

答案 1 :(得分:1)

<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();    

 $args = array(
   'post_type' => 'attachment',
   'numberposts' => -1,
   'post_status' => null,
   'post_parent' => $post->ID
  );

  $attachments = get_posts( $args );
     if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
           echo '<li>';
           echo wp_get_attachment_image( $attachment->ID, 'full' );
           echo '<p>';
           echo apply_filters( 'the_title', $attachment->post_title );
           echo '</p></li>';
          }
     }

 endwhile; endif; ?>
</ul>

如果您有任何疑问,请在此处发表评论