因为一些大家都知道的原因,Gravatar头像源在国内是无法加载的,最近在网上搜到个好的解决方案,替换为国内的Cravatar头像源项目:
Cravatar是lifepress团队在国内做的一个公益项目,是一个Gravatar完美的替代品,看了官方的文档,Cravatar 100%兼容Gravatar的头像API,这意味着你可以简单的通过替换域名的方式来使用Cravatar接替Gravatar。
它的功能官方文档是这样说的:Cravatar支持在用户未设置Cravatar头像及Gravatar头像时匹配QQ头像(仅限于使用QQ数字邮箱的用户)
其带来的效果是:经过三级匹配(Cravatar头像->Gravatar头像->QQ头像)后,大约70%的访客都会得到准确的头像(也就是使用Cravatar,如果你没有Gravatar头像,Cravatar可以默认输出你的QQ头像)
Cravatar在100%兼容Gravatar的同时,还有很多优点:
- 具有更快的速度服务完全架设并运行在中国大陆境内,几乎是毫秒级的相应,可以提高博客的速度;
- 更高的稳定性,因为项目架构在国内,我们属于国内,不可能出现被墙,简单来说不会出现时不时访问不了的情况;
- 更高的头像展现率,在自有头像库的基础上囊括了Gravatar和QQ的头像库,更加的丰富;
- 支持较高效率的头像更新速率,五分钟刷新,自己心爱的头像马上展现在自己的博客上。
在wordpress里的解决方案就是在functions.php文件中增加以下代码即可:
if ( ! function_exists( ‘get_cravatar_url’ ) ) {
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’,
‘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 );
}
if ( ! function_exists( ‘set_user_profile_picture_for_cravatar’ ) ) {
/**
* 替换个人资料卡中的头像上传地址
*/
function set_user_profile_picture_for_cravatar() {
return ‘<a href=”https://cravatar.cn” target=”_blank”>您可以在 Cravatar 修改您的资料图片</a>’;
}
add_filter( ‘user_profile_picture_description’, ‘set_user_profile_picture_for_cravatar’, 1 );
}