wordpress页面提速之Gravatar头像

虫子君
478
文章
208
评论
2019.4. 1710:13:34 7 2,111 3179字阅读10分35秒

今年的第一篇正儿八经的博客,最近呢,网站刚刚上线,所以很多地方都存在不足之处,虫子君也是一直用越的整改中,今年升级了服务器的配置,然后也大肆的优化了一番服务器,期间遇到许多问题也感谢知更鸟群友的踊跃回答,这里特别需要感谢的是狼哥,给与了一个非常的nice的缓存方案。敬礼!!!

折腾好了服务器之后,遇到的各种各样的问题,总算是得到了一定的解决,不过还是有一些零碎的问题,就好比“Gravatar头像”虫子君以前也是不怎么的在乎网页上面的某一个文件的报404的错误,不过最近折腾服务器还是给了一些灵感,我觉得这个问题有必要解决。

在网上找了一些资料其中解决方案有许多,虫子君总结下来后,发现其中三个方案还是非常的不错的,至于是否合适您,这个就是需要您自己考量的一件事情。

方案1:禁止WordPress加载头像

wordpress页面提速之Gravatar头像

路径:WordPress后台——设置——讨论

这个方案有一点不好,就是一旦禁用头像功能之后,后台的所有头像都不会加载,前台也不会有头像输出,如果您需要尽心的写文章的话,这个方案无疑是非常的适合您的。

方案2:修改WordPress程序文件替换实现本地头像

修改get_avatar函数,在wp-includes/pluggable.php内。修改后的函数如下:

if ( !function_exists( 'get_avatar' ) ) :
/**
* Retrieve the avatar for a user who provided a user ID or email address.
*
* @since 2.5
* @param int|string|object $id_or_email A user ID, email address, or comment object
* @param int $size Size of the avatar image
* @param string $default URL to a default image to use if no avatar is available
* @param string $alt Alternate text to use in image tag. Defaults to blank
* @return string tag for the user's avatar
*/
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
if ( ! get_option('show_avatars') )
return false;
   
if ( false === $alt)
$safe_alt = '';
else
$safe_alt = esc_attr( $alt );
   
if ( !is_numeric($size) )
$size = '96';
$default = includes_url('wp-content/uploads/blank.gif');
$avatar = "";
   
return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
   
}
endif;

即使用该函数,仅可能返回一个默认头像(位于wp-includes/wp-content/uploads/blank.gif内),再配合simple local avatars或Add Local Avatar插件,就实现了预期的效果(以上方案2内容来自“永仔”这里表示感谢)

方案3:调用SSL Gravatar头像

虽然Gravatar头像http线路,已经逐渐的回暖,不过访问速度始终不如人意,不过https线路的Gravatar头像速度还是蛮快的(不过虫子君的就不知道为啥无法加载,可能是使用了国内的cdn缘故。)不过总体上ssl线路还行,如果你的网站已经上了ssl 那么也就不需要在再操作。

可以在的主题文件“functions.php”添加上这一段代码

function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

这个方案虫子君没有测试,所以结果未知!(以上代码来自“歉信君”)

方案4:使用nix-gravatar-cache Gravatar头像缓存插件

nix-gravatar-cache是一个非常不错的Gravatar头像缓存插件,这个插件是由“知更鸟”汉化,非常感谢。

插件的安装非常的简单,只需要将这个插件安装到您的WordPress的后台,就能够自动缓存Gravatar头像,经过虫子君的测试,该插件能够实现Gravatar头像加速,而且效果非常的明显。

有强迫症患者的,不妨自己试试。wordpress页面提速之Gravatar头像

防止采集文章,插件压缩包邮压缩密码,压缩密码索取请回复本文刷新本页即可看到。

方案5:代码实现缓存不同大小的 Gravatar 头像

关于 WordPress 缓存 Gravatar 头像到本地,提升网站加载速度的文章已经到处都是,但是之前的一些 WordPress 头像缓存解决方案都是只能缓存一个大小的头像,而子凡这里就将一个升级版给大家分享一下,这也是子凡在做 Fanly 主题中用到的一个功能,毕竟在 WordPress 博客中,很多时候我们不仅仅只是使用一种头像大小,如果网站调用了多个尺寸的头像可能调用大头像的时候会不清晰。

改善功能:支持不同大小的头像;支持自动创建缓存目录。

//缓存 Gravatar 头像
add_filter('get_avatar', 'fanly_cache_avatar');
function fanly_cache_avatar($avatar) {
	if(!is_dir('avatar'))//判断是否有缓存目录
		mkdir('avatar', 0755, true);//否者创建头像缓存目录
	$tmp = strpos($avatar, 'http');
	$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
	$tmp = strpos($g, 'avatar/') + 7;
	$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
	$w = home_url();
	list($width,$height,$type,$attr) = getwp-content/uploadsize($g);//获取头像参数
	$e = ABSPATH .'avatar/'. $f .'-'.$width.'.jpg';
	$t = 604800; //设定 7 天, 单位:秒
	if ( empty($default) ) $default = 'https://i.leiue.com/avatar.php';
	if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者文件超过 7 天才更新
		copy(htmlspecialchars_decode($g), $e);
	}else{
		$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'-'.$width.'.jpg'));
	}
	if (filesize($e) < 500) copy($default, $e);
	return $avatar;
}

方案五虫子君没有测试,所以结果未知,代码为大神子凡原创,以上代码内容为子凡原创(这里表示感谢!雪泪博客

下载信息 插件名称:nix-gravatar-cache 应用平台:WordPress 插件版本:不升级版 插件大小:7KB
解压密码:发表评论并刷新可见
下载地址

展开全文
  • 能够在茫茫人海遇见本就是缘分,恰好我在写,恰好你在看我的博客,这一切都是刚刚好。
  • 本站所有的文章都是源自我的自己的原创,如果您觉得某一篇文章写的不错,转载不用留言,赏我个链接就行!

7
说点什么

登录 发表评论
avatar
1000
  
smilegrinwinkmrgreenneutraltwistedarrowshockunamusedcooleviloopsrazzrollcryeeklolmadsadexclamationquestionideahmmbegwhewchucklesillyenvyshutmouth
照片和图像文件
 
 
 
其他档案类型
 
 
 
7 评论主题
0 主题回复
0 关注者
 
最响应的评论
最热门的评论帖子
7 评论者
张三568542剑心飘阿佛洛狄忒 最近的评论者
  订阅  
提醒
568542
游客
568542
离线

听说这里有宝藏

张三
游客
张三
离线

很感谢博主