WordPress纯代码:自动获取文章第一张图片作为缩略图链接(支持外链图片)


WordPress自动获取文章缩略图(支持外链图片)功能的作用:

这个功能君子不器去年就分享过一次,还集成到了君子不器发布的dux修改版里面,不过在这期间还是有人问外链缩略图的实现方式,因此君子不器在这里重新分享一下实现方法。

WordPress纯代码:自动获取文章第一张图片作为缩略图链接(支持外链图片)

上图就是君子不器使用外链缩略图的效果,但如无必要还是不要使用外链图片比较好,不过采集站的话就另说了。

WordPress纯代码:自动获取文章第一张图片作为缩略图的实现方式

其实实现起来很简单,目前各个主题里面的自动缩略图代码都大同小异,全是转来转去的,因此君子不器将代码改了下,若是有特色图像则返回特色图像的图片地址,若没有则直接返回文章中第一张图片的地址。

请将下面君子不器贴出的代码复制一下,然后粘贴到你当前WordPress主题的模板函数(functions.php)文件中保存即可。

/**
 * 文章标题:WordPress纯代码:自动获取文章第一张图片作为缩略图链接(支持外链图片)
 * 文章作者:君子不器
 * 文章链接:http://junzibuqi.com/get-post-img-url.html
 * 参数说明:$thumbnail = true   如果没有设置特色图像则获取第一张图片
 * 参数说明:$thumbnail = false  如果没有设置特色图像则获取默认的图片
 */
function junzibuqi_get_post_img_url($thumbnail = true) {
	global $post;	
	if (has_post_thumbnail ()) {
		$domsxe = simplexml_load_string ( get_the_post_thumbnail () );
		$thumbnailsrc = $domsxe->attributes()->src;
		return $thumbnailsrc;		
	}elseif ($thumbnail) {
		$content = $post->post_content;
		preg_match_all ( '/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER );
		$n = count ( $strResult [1] );
			if ($n > 0) {
				return $strResult [1] [0] ;
			} else {
				return trailingslashit( get_template_directory_uri() ) . 'images/thumbnail.png';
			}			
	}else {
		return trailingslashit( get_template_directory_uri() ) . 'images/thumbnail.png';
	}
}

代码调用方式

君子不器上面贴出的代码是直接返回链接的,因此你需要自行拼接一下,不管是直接输出img标签还是用a标签包裹都由你决定,下面君子不器会贴出一个个示例。

<?php
// 直接输出
echo '<img src="' . junzibuqi_get_post_img_url(true) . '" alt="' . get_the_title() . '" />';
?>

需要注意的是,若是你文章中连一张图片都没有,那么该代码就会返回你当前WordPress主题目录下images文件夹中的thumbnail.png作为缩略图,你可以根据自己喜好来设置默认图片。

分享您对本文的看法!
喜欢 喜欢
5
喜欢
不懂 不懂
14
不懂
膜拜 膜拜
11
膜拜
蛋疼 蛋疼
8
蛋疼
好奇 好奇
4
好奇
逗比 逗比
7
逗比
有才 有才
5
有才
开心 开心
2
开心
可怕 可怕
5
可怕
WordPress纯代码:自动获取文章第一张图片作为缩略图链接(支持外链图片)

万事不求人,做最全面的自己!

评论 2

    1. 当时我分享的dux增强版也有这个功能,但代码不一样,这次的代码是只返回图片的链接,需要自己拼接img标签,这样方便定制自己所需的样式

分享下您的观点

您填写的邮箱不会被公开,邮箱仅用于获取您的Gravatar头像

登录

重置密码

再次尝试?
登录