什么是Gravatar
Gravatar是WordPress母公司Automattic推出的一个公共头像服务,也是WordPress默认的头像服务。但因为长城防火墙的存在,Gravatar在中国时不时就会被墙一下,比如本次从2021年2月一直到8月都是不可访问状态。
在以往的时候,国内的CDN厂商和博客主会使用反代的方式确保Gravatar在国内能正常访问,但老实说,这种方式很容易就会吃牢饭。不妨想一下,Gravatar为什么会墙?一定是出现了某些涉政、涉黄之类的违法内容。这些国家禁止的东西,我们将其反代入国内,可谓是细思极恐。同时反代也只能解决头像访问的问题,而解决不了头像上传的问题。
Cravatar简介
由于国内一直无法正常加载Gravatar全球通用头像,严重拖慢WordPress的加载速度,另外一些新手可能也不知道如何申请头像。近日WP-China-Yes插件的作者,再次推出并上线了国内Gravatar头像的完美替代方案Cravatar。
Cravatar 完全兼容 Gravatar 的 API 规范,支持用户上传和分享头像。
进入Cravatar头像网站,用自己常用的邮箱注册,登录后点击“立即创建你的头像”。
上传一张头像图片,用注册的邮箱在支持头像显示的网站留言,就会看到自己专有的Cravatar头像。
那如何将Cravatar头像服务集成到自己的WordPress网站中呢?
很简单,将下面的代码添加到当前主题函数模板functions.php中即可:
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
* 替换Gravatar头像为Cravatar头像
*
* Cravatar是Gravatar在中国的完美替代方案,你可以在https://cravatar.cn更新你的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com'
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
* 替换WordPress讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default'] = 'Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
之后,Cravatar头像会替代Gravatar,头像加载速度显著提升,也不需要再将头像缓存到本地了。
当留言者使用的QQ邮箱没有申请头像,Cravatar会自动调用QQ头像,非常人性化。
另外,还可以尝试安装:LitePress中国本土的WordPress发行版
主题兼容情况及使用方法
知更鸟主题
知更鸟主题完美支持Cravatar头像,只需要在自定义获取头像地址中输入:cravatar.cn/avatar/,即可调用Cravatar头像。
沉默的大多数
未对WordPress本身 头像方案 过多魔改的主题可以通过安装 WP-China-Yes插件 的方法或者将下面的代码加入你的插件或主题的functions.php中
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
* 替换Gravatar头像为Cravatar头像
*
* Cravatar是Gravatar在中国的完美替代方案,你可以在https://cravatar.cn更新你的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com'
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
* 替换WordPress讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default'] = 'Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
暂不支持的
以下主题因为使用自有的头像方案,完全屏蔽了Gravatar,所以也不支持Cravatar:
- 7B2
- 日主题
- 子比主题
其他主题的用户可以先去咨询一下作者是否愿意接入Cravatar,子比主题的作者明确表示暂不考虑,因此为了能够用上 Cravatar 头像只能自己修改,费尽千辛万苦终于搞好,后续整理一下子比主题支持Cravatar需要修改的代码,单独成文,这里仅作预告。
本站头像均调用自 Cravatar
参考自:
作者:晨岩
本站所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!