Gravatar头像打不开很久了,主题自带了替换Gravatar头像镜像源的设置,之前是用的https://sdn.geekzu.org/avatar

刚好今天在 小赵同学 那里看到了篇替换Gravatar头像镜像源的文章,推荐了一个国内团队公益项目

Cravatar - 互联网公共头像服务

Cravatar是lifepress团队在国内做的一个公益项目,是一个Gravatar头像在国内的完美替代品,Cravatar100%兼容Gravatar的头像API,这意味着你可以简单的通过替换域名的方式来使用Cravatar接替Gravatar,更棒的是Cravatar支持在用户未设置Cravatar头像及Gravatar头像时匹配QQ头像(仅限于使用QQ数字邮箱的用户)

也就是使用Cravatar的话,你可以直接在cravatar.cn设置头像,如果不设置那么就显示Gravatar头像,如果Gravatar头像也没有,Cravatar还可以默认输出你的QQ头像。(Cravatar头像->Gravatar头像->QQ头像)。Cravatar还支持较高效率的头像更新速率,五分钟刷新一次。

Cravatar 目前作为一款主题运行在 LitePress.cn 平台之上,如果你希望部署自己的自托管版本,则可以在 GitHub 仓库找到它的源代码:
https://github.com/litepress/litepress.cn/tree/main/wp-content/themes/cravatar

Cravatar官网地址:https://cravatar.cn
Cravatar头像源地址:https://cravatar.cn/avatar

替换方法

Typecho

将以下代码加到站点根目录的config.inc.php文件中即可

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

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