推荐给大家的WordPress本地缓存神器WP-Rocket普遍都反应非常的好,请参考【推荐一个 WordPress 本地缓存的神器: WP-Rocket 插件】一文。明月是个强迫症重度患者,对于WordPress载入时间缓慢一直都受不了,这个 WP-Rocket总算是解决了WordPress后台载入龟速的“顽疾”,最后就是评论的Gravatar头像问题了,虽然鸟哥主题Begin支持切换Gravatar服务器,但是无论哪个服务器都没有稳定过,国内多说的稳定性还不如“墙外”的SSL服务器呢!
博客本身评论比较多,如果文章评论量超过30条后,就严重影响文章的载入时间了。所以给Gravatar头像加速成了必须要解决的问题了,今天明月就分享给大家一个“利用七牛云存储缓存Gravatar头像”的方案,目前明月的博客站都已经实现这样的加速了!具体大家可以浏览本博客体验效果!
七牛云
原理其实很简单,就是借助七牛云的“对象存储”拉取Gravatar的SSL服务器(当然也可以使用多说服务器)上的头像图片转存到七牛空间来实现,如果再在“对象存储”空间上再开启七牛云的融合CDN的话那就超级完美了,当然不使用CDN单就七牛空间的速度也比原有的强出了很多。下面给大家具体的实现方法,整体下来最多20分钟就可以搞定了:
七牛邀请注册https://portal.qiniu.com/signup?code=3la4hl87ku7o2
首先,当然是注册个七牛云账号并通过实名认证了,然后登陆七牛云账号新建一个“对象存储”空间,空间名字可以任意英文组合即可,镜像源要设成https://secure.gravatar.com/以便拉取 Gravatar 官网的头像图片(当然你也可以设定成多说 Gravatar 头像服务器地址),如下图:
创建七牛空间
然后根据自己WordPress主题使用到的头像尺寸设定七牛云对象存储空间的“图片样式”,参照 Gravatar 官方头像不同 size 的图片,依次是?s=40、60、80、100、120(你可以审查元素看看):
32、40、60、80、100尺寸
就明月使用的 Begin 主题来说32、40、60、80、100尺寸是最合适的,所以分别创建“图片样式”如下图:
这是全部创建完成后的处理样式列表
每个图片处理样式就参照上图设定即可,样式名称即为尺寸数字即可
至此七牛云存储端设置全部完成,剩下的就是在 WordPress 所使用的主题下根目录下的function.php里添加如下代码替换 WordPress 默认评论头像地址:
-
//缓存Gravatar 头像到七牛云存储,WordPress 4.0+ 适用
-
function qiniu_avatar($avatar) {
-
$avatar = preg_replace(‘/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/’,'<img src=”http://这里要替换成你的七牛空间域名/avatar/$1-$2″ class=”avatar avatar-$2″ height=”$2″ width=”$2″>’,$avatar);
-
return $avatar;
-
}
-
add_filter( ‘get_avatar’, ‘qiniu_avatar’, 10, 3 );
记得要把你自己的七牛空间域名或者绑定的自定义域名在代码里填上(代码内紫色字部分替换即可),然后保存,浏览一下评论页面后,对评论头像地址进行验证是不是已经替换为七牛云空间缓存的图片了。这时登录七牛云可以看到空间里面已经缓存了头像图片了,如下图:
最后就是体验博客载入速度了,如果你是七牛付费用户还可以给头像缓存的七牛空间开启融合 CDN ,这样头像调用会选择离你最近、速度最快的节点链接,这样就可以避免Gravatar被“墙”以来头像总是获取失败和载入龟速的尴尬了,也算是变相的给我们的 WordPress 提了速!话说也不知道啥时候 WordPress 才会考虑在国内架设服务器,但愿这个愿望可以实现。