很多 WordPress 和 Typecho 网站都在用 Gravatar 头像作为自己的用户头像方案,但是 Gravatar 的服务器在国外,一直不够稳定,现在为大家搜集整理了替换方案。

可选源

sdn.geekzu.org/avatar (推荐首选,国内加速)
gravatar.fanfuns.com/avatar (已无法访问)
use.sevencdn.com/avatar (备选,偶尔抽风缓慢)
gravatar.loli.net/avatar (备选,Loli 大佬的服务)
gravatar.loli.top/avatar (已停止,Loli 大佬已出售域名)
gravatar.zeruns.tech (备选Zeruns's Blog提供的国内加速)
cravatar.cn/avatar/ (备选,国内 Cravatar 方案)

WordPress 替换方案

在自己博客主题的 function.php 中 php 结束标签之前加上如下代码即可:(不同的源,后缀不一样,请注意区分)

/*替换 Gravatar 国内CDN*/
function getV2exAvatar($avatar) {
        $avatar = str_replace(array("secure.gravatar.com/avatar","cn.gravatar.com/avatar","www.gravatar.com/avatar","0.gravatar.com/avatar","1.gravatar.com/avatar","2.gravatar.com/avatar"),"cdn.geekzu.org/gravatar",$avatar);
        return $avatar;
}
add_filter('get_avatar', 'getV2exAvatar');

Typecho 替换方案

Typecho 只需要安装目录中的 config.inc.php 文件内添加下面的代码

define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.geekzu.org/gravatar/');

自建镜像方案

如果你觉得自己折腾一个比较好玩,可以参阅以下教程:

Gravatar镜像源自建教程,使用CDN加速无需配置反代
自建Gravatar加速镜像源的方法

Cravatar 方案

Cravatar 是国内 WP-China-Yes 插件的开发者推出的 Gravatar 头像替代方案,其完美兼容所有 Gravatar 头像API接口,同时如果你未在 Cravatar 设置头像,则会先尝试调用 Gravatar 上的头像数据,其后是 QQ 头像,最后会返回我们为你准备的一组默认头像。

WordPress 替换方法

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 );
}

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 替换方法

/**
 * 替换Gravatar头像为Cravatar头像
 *
 * Cravatar是Gravatar在中国的完美替代方案,你可以在https://cravatar.cn更新你的头像
 */
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cravatar.cn/avatar/');

如果大家发现了更多更好的国内源,欢迎留言分享。