今天有朋友说我的站点打开好慢,我觉得这怎么可能,WordPress主题都没任何图片需要加载,而且文章及图片都进行了整体的压缩缓存,怎么可能会慢?于是我清空浏览器缓存仔细的检查了一下,终于发现问题出在哪里,Gravatar评论头像加载缓慢,这也难怪,毕竟服务器里的好远好远,本着爱折腾的性格我怎么能够忍受,于是开始了Gravatar加速优化。

检查到是Gravatar加载头像缓慢,于是针对这个问题的处理方法进行了收集,发现有以下几个方法:
第一种。国内的 Gravatar头像CDN加速 ,选择有很多,七牛, 极客, V2EX,多说等等,具体替换方法也简单,主题函数 functions.php 添加下面代码。
function replace_gravatar($avatar) {
$avatar = str_replace(array(“//gravatar.com/”, “//secure.gravatar.com/”, “//www.gravatar.com/”, “//0.gravatar.com/”, “//1.gravatar.com/”, “//2.gravatar.com/”, “//cn.gravatar.com/”), “//sdn.geekzu.org/”, $avatar);
return $avatar;}
add_filter( ‘get_avatar’, ‘replace_gravatar’ );
把代码中的//sdn.geekzu.org/替换成想使用的cdn加速服务器即可,默认的是极客的,七牛的是 dn-qiniu-avatar.qbox.me , V2EX 的是 https://cdn.v2ex.co/gravatar/ 简单把。想用那个自己选择就行了。
第二种、比较简单,直接后台安装插件即可。插件很多,自行搜索。推荐个:nix-gravatar-cache 貌似不错,没安装过测试过。
第三种。本地进行缓存替换,直接缓存到服务器然后加载是不是就要快很多拉。方法也很简单, 网站根目录创建文件夹avatar,权限调整为755或777.、然后准备一张默认头像命名为default.jpg放入 avatar 文件内, 把下面代码加入到 主题函数 functions.php 内保存即可,
// 评论头像缓存在本地服务器
function my_avatar($avatar) {
$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 = get_bloginfo('wpurl');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; //设定为14天,单位/秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //当头像不存在或超过14天更新
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'my_avatar');
然后评论区刷新一下,看看评论头像是不是都换成本地的拉,
还有一种方法就是直接关闭头像,呵呵,这也能提升加载速度,但体验一般。