0

我需要从帖子中提取第一张图片,我找到了这段代码,但这显示了帖子中的最后一张图片(例如:http: //zonadictoz.com.ar),我不知道为什么!

function myPostImage()
{
  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 = "/images/default.jpg";
  }
  return $first_img;
}

有任何想法吗?

4

2 回答 2

2

使用features 图像字段是一个更强大的解决方案,但关于您的代码,您可以使用 preg_match() 更改preg_match_all( )以确保仅捕获第一个匹配项:

<?php
$match = preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);

if ( $match )
    $first_img = $matches[1];
?>
于 2013-03-08T07:27:41.697 回答
0

我实现了调整上面的代码,但似乎仍在从最后一张图像中拾取,而不是第一张,我该如何扭转它?

于 2013-03-08T08:08:59.000 回答