php - 从wordpress帖子获取图片网址

时间:2013-07-26 17:43:52

标签: php image wordpress url

我有基于wordpress系统的网站,我需要从每个帖子中获取图片网址。我有这个代码并且它正在工作,但是有问题,因为所有帖子都有相同的图片+最后,有新的。这是一个例子:

  

post1 - image1.png,image2.png,image3.png

     

post2 - image1.png,image2.png,image3.png,new1.png,new2.png

     

post3 - image1.png,image2.png,image3.png,new1.png,new2.png,third.png

     

等...

这是我的PHP代码

preg_match_all('/<img[^>]+>/i',$old_content, $imgTags); 

for ($i = 0; $i < count($imgTags[0]); $i++) {

  // get the source string
  preg_match('/src="([^"]+)/i',$imgTags[0][$i], $imgage);

  // remove opening 'src=' tag, can`t get the regex right
  $origImageSrc[] = str_ireplace( 'src="', '',  $imgage[0]);
}

任何想法,它为什么这样做? : - )

1 个答案:

答案 0 :(得分:0)

这可能对你有所帮助,这里有一个函数可以放入你的Wordpress主题中的functions.php文件中。

/*
 * Retreive url's for image attachments from a post
 */

function getPostImages($size = 'full'){
    global $post;
    $urls = array();

    $images = get_children(array(
        'post_parent' => $post->ID, 
        'post_status' => 'inheret',
        'post_type'   => 'attachment',
        'post_mime_type' => 'image'
    ));

    if(isset($images)){
        foreach($images as $image){
            $imgThumb = wp_get_attachment_image_src($image->ID, $size, false);
            $urls[] = $imgThumb[0];
        }  

        return $urls;
    }else{
        return false;
    }
}

这将返回一个数组,其中每个图像网址都附加到帖子/页面。要循环播放并在<ul>中显示所有图像,您可以执行此类操作。

<?php if(have_posts()): while(have_posts()): the_post(); ?>
    <ul id="post_images">
        <?php $postImages = getPostImages($size = 'full'); ?>
        <?php foreach($postImages as $image): ?>
            <li><img src="<?php echo $image; ?>" /></li>
        <?php endforeach; ?>
    </ul>
<?php endwhile; endif; ?>