Cravatar是我在翻Wp-China-Yes插件的详情页面时无意发现的,他能够完美的解决国内Gravatar头像被墙无法显示的问题,而且他是免费的!

Ⅰ. Cravatar

什么是Cravatar

据我了解呢,Cravatar是《WordPress中国本土化计划》的一部分,可以完美替代与兼容Gravatar头像,有自有的头像库,并且服务器在国内速度也是非常快的,而且Cravatar有独特的三级头像匹配机制,当我们开始请求头像时,他会按照Cravatar -> Gravatar -> QQ 的顺序来请求头像,QQ头像的话是只有用数字QQ邮箱时才能匹配到。

Cravatar_2

我们只需要Cravatar的官网https://cravatar.cn/注册并上传我们的头像就OK了,头像修改后会在5分钟内刷新缓存并生效。前提是你的网站采用了Cravatar作为头像显示来源。

Ⅱ. Cravatar的使用

在WordPress上使用

只要在主题的functions.php中加入以下代码即可


if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
     * 替换 Gravatar 头像为 Cravatar 头像
     */
    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 );
}

在Typecho上使用

将以下代码加入到根目录的Typecho配置文件config.inc.php中即可


define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cravatar.cn/avatar/'); //更换头像源

其他

如果你使用其他系统,想集成Cravatar头像,则可以参考开发文档:https://cravatar.cn/developers

----END----


一个热爱二次元及网络技术的未知生物