0

我有基于 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

ETC...

这是我的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]);
}

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

4

1 回答 1

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;
    }
}

这将返回一个数组,其中包含附加到帖子/页面的每个图像 url。要循环并显示所有图像,<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; ?>
于 2013-07-26T19:52:08.397 回答