wordpress获取文章中第一张图片

引言(百度上的错误代码)

对于这个需求我想大多数主题开发者都有,毕竟每篇文章如果都要自己上传缩略图来当封面啥的就太麻烦了,所以这个时候我们就需要有一个方法来获取文章中的所有图片中的一张来使用,随便拿来干嘛。

当然,这些都是废话,其实我想要说的是百度上面有很多这样的代码,但都是错的……

下面贴出两组代码。

百度上的代码

unction catch_that_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 = "/images/default.jpg";
 
//请自行设置一张default.jpg图片
}
 
return $first_img;
}

其实你如果直接拿来用,你会发现是可以用的,看起来还像没什么问题,但是如果你一篇文章中有很多图片,你就会发现这个函数取的其实是最后一张,不是第一张!

正确的代码

// 获取文章第一张缩略图 
function catch_that_image() {
	global $post;
	$first_img = '';
	ob_start();
	ob_end_clean();
	$output = preg_match_all('/<img*.+src=[\'"]([^\'"]+)[\'"].*>/iU', wp_unslash($post->post_content), $matches);
	if(empty($output)){ 
		$first_img = "https://paperdrips.s3.amazonaws.com/prod/fs/cachedimages/3727365566-08cce0080760678feb08fd1abb3196a2a15c12274eac42fc436be4cc39cceae4.png";
	}else {
		$first_img = $matches [1][0];
	}
	return $first_img;
}

错误地方

其实错的地方主要是正则,我在我的代码的正则后面加了一个大写的U,至于为什么要加这个,你就可以去百度一下了。
(原文载自 银戒一隅

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值