刚安装完wordpress的时候遇到一个很奇怪的现象,明明页面可见内容已经加载完毕了,浏览器上的加载标志还是转个不停,虽然也看到过很多人抱怨wordpress用久了容易卡顿,咱这可是新装的博客,过年刚搭的!为这个问题困扰了好几天,终于想起来打开浏览器控制台检查一下,发现是几个小图片始终无法加载,看了下小图片的具体位置,评论者的头像需要用到它,站点管理者的头像也需要它,难怪连站点后台的标志也是不停的翻滚。
gravatar头像服务
根据图片的请求地址查了以下,发现图片虽小,相关站点倒是颇有来历,gravatar,全称叫做“Globally Recognized Avatar”,翻译过来叫做全球通用头像。gravatar的概念首先是在国外的独立wordPress博客中兴起的,当用户到任何一个支持gravatar的网站留言时,这个网站都就会根据用户所提供的email地址为你显示出匹配的头像。当然,这个头像,是需要用户事先到gravatar的网站注册并上传的。
最简单粗暴的解决方案
gravatar虽然好,奈何已被墙,因为gravatar服务器无法正常访问,所以就产生了本文开头的问题,爱的魔力转圈圈。又一次错怪了wordpress,真不是系统快慢的问题。既然请求不到,干脆躺平放弃请求好了,在后台的仪表盘,“设置”中选择“讨论”进入讨论设置页面,拖动页面到底部,取消显示头像前面的勾选,然后保存设置。这下浏览器的加载图标一闪而过,强迫症患者感觉又松了口气。
替换掉头像服务器
除了躺平,我们也可以尝试更换头像服务器,在wordpress主题的functions.php文件末尾添加如下代码,以下代码将默认的头像服务器替换为了极客族的资源:
add_filter('get_avatar', function ($avatar) {
return str_replace([
'www.gravatar.com/avatar/',
'0.gravatar.com/avatar/',
'1.gravatar.com/avatar/',
'2.gravatar.com/avatar/',
'secure.gravatar.com/avatar/',
'cn.gravatar.com/avatar/'
], 'sdn.geekzu.org/avatar/', $avatar);
});
其他国内可访问的替代方案:
cdn.sep.cc/avatar/
sdn.geekzu.org/avatar/
cdn.v2ex.com/gravatar/
gravatar.loli.net/avatar/
gravatar.wp-china-yes.net/avatar/
gravatar.zeruns.tech/avatar/
公益项目与速率
可能是因为很多站点优先推荐了极客族的资源,导致用户扎堆,笔者实际使用下来效果并不理想,站点的响应速度反而不如:
gravatar.wp-china-yes.net/avatar/
遇到同我一样觉得访问速度不够理想的亲,也可以尝试以下上面列表中的其他项,更换来源的方法很简单,将“sdn.geekzu.org/avatar/”直接替换为“gravatar.wp-china-yes.net/avatar/”即可,演示如下:
add_filter('get_avatar', function ($avatar) {
return str_replace([
'www.gravatar.com/avatar/',
'0.gravatar.com/avatar/',
'1.gravatar.com/avatar/',
'2.gravatar.com/avatar/',
'secure.gravatar.com/avatar/',
'cn.gravatar.com/avatar/'
], 'gravatar.wp-china-yes.net/avatar/', $avatar);
});