Gravatar头像无法加载问题之第三方国内镜像源,附Typecho 更换Gravatar国内源教程
因为某些原因在中国大陆Gravatar头像彻底无法进行访问。由于主题前端一般都可以设置第三方国内镜像源,所以没什么问题。而Typecho后台显示却无法正常加载,很是让人难受。

Gravatar是Globally Recognized Avatar的缩写,意为“全球通用头像”,如果在Gravatar的服务器上放置了你自己的头像,只要提供你与这个头像关联的Email地址,就能够显示出你的Gravatar头像来

Gravatar的概念首先是在国外的独立WordPress博客中兴起的,当你在网站留言时,网站都会根据你所提供的Email地址为你显示出匹配的头像

当然Typecho也是默认有支持Gravatar头像的功能

但是由于Gravatar的镜像默认是国外镜像,严重拖慢了网站访问速度,所以这里教大伙如何修改为国内镜像源

解决方案

修改默认Gravatar头像地址为第三方国内镜像源
从网站根目录进入/var/Typecho打开Common.php,找到名为gravatarUrl的function,大概在932行左右,可以用搜索功能查找一下。找到如下所示的代码:

if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
    $url = __TYPECHO_GRAVATAR_PREFIX__;
} else {
    $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
    $url .= '/avatar/';
}

修改https://secure.gravatar.com为国内第三方镜像源地址,修改/avatar/为镜像源的文件夹,如此操作后台即可正常显示Gravatar头像。

不要忘记https://和文件夹两侧的/

示例

推荐第三方国内镜像源:
zeruns's Blog的镜像源:https://gravatar.zeruns.tech/avatar/
Loli源:https://gravatar.loli.net/avatar/
极客族:https://sdn.geekzu.org/avatar/(推荐,我在用的)
其他源:
https://dn-qiniu-avatar.qbox.me/avatar/
https://cdn.v2ex.com/gravatar/
以第一个镜像源为例,使用上文所述的方法修改完后的结果为:

if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
    $url = __TYPECHO_GRAVATAR_PREFIX__;
} else {
    $url = $isSecure ? 'https://sdn.geekzu.org' : 'http://www.gravatar.com';
    $url .= '/avatar/';
}

提示

主题可能要在其它文件中修改,这里给Handsome主题的修改方法:

后台 --> 外观 --> 设置外观 --> 速度优化 --> gravatar镜像源地址
如果想要修改gravatar默认生成的头像,请进入并编辑/handsome/libs/Utils.php,找到名为getGravator的Function,修改变量名$default的值为以下五选一。

mm 神秘人
identicon 抽象图形(自动生成)
wavatar Wavatar(自动生成)
monsterid 小怪物(自动生成)
retro 复古(自动生成)