Gravatar 头像总是无法显示?你可改用完美替代的 Cravatar

Gravatar 作为互联网公共头像服务,已经成为很多网站程序的默认头像服务,特别是和 WordPress 集成的非常好,多数博主都注册了 Gravatar ,以方便博客互访的评论留言。但 Gravatar 在国内时不时就会被墙一下,最近已经几个月不能正常显示了,虽然许多博主使用反代的方式来确保 Gravatar 能正常访问,但很容易失效,将人折腾得心烦意乱。

近日一直致力于解决 WordPress 在中国高墙环境下水土不服问题的,WP-China-Yes 插件的作者,再次出手,推出了 Gravatar 在中国的完美替代方案 Cravatar

Cravatar 完全兼容 Gravatar 的 API 规范,支持用户自由的上传和分享头像。同时如果你未在Cravatar设置头像,则会先尝试调用 Gravatar 上的头像数据,其后是 QQ 头像,最后会返回 Cravatar 的默认头像。

使用 Cravatar 头像,最大的的优势就是头像加载速度显著提升。服务完全架设并运行在中国大陆境内,提供毫秒级的响应速度,也不需要再将头像缓存到本地了。

如何注册 Cravatar 头像服务

进入 Cravatar 头像网站(Cravatar头像申请地址),用自己常用的邮箱进行注册,登录后点击“立即创建你的头像”,上传一张头像图片,完成创建。如果你的邮箱已经创建过 Gravatar ,则会自动显示创建的头像,如果你的邮箱是QQ数字邮箱,则会显示你的QQ头像,即按 Cravatar -> Gravatar -> QQ 头像的顺序调用头像图片。

当你用注册的邮箱在支持公共头像服务的网站留言时,就会看到自己特有的 Cravatar 头像了。

如何将 Cravatar头像服务集成到 WordPress 网站中

你可以很方便的为 WordPress 集成 Cravatar 头像服务,只需要将以下代码加入主题的 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 );
}

如果你已经安装了 WP-China-Yes 插件(立即下载),可以更新到最新版后在插件设置中"使用 Cravatar 头像"为“全局启用”。

替换默认头像设置的Gravatar名称

添加上面的代码以后,我们在 设置 - 讨论 界面的头像选择这里,仍然显示 Gravatar名称,使用下面的代码即可替换:

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

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


历史上的今天:

相关推荐

WordPress 网站迁移后内容页出现404错误的修复方法

部署好服务器环境后,我将一个 WordPress 网站迁移到了上面,迁移完成后,后台登录正常,网站首页访问也正常,就是文章页等页面全部404错误。 常规解决方法 登录后台 - 设置 - 固定连接,不作任何修改,点击“保存”按钮。很多情况下,是可以通过这个方法解决内页404错误的,但是本次我的错误没有能用这种方法解决。 检查 ...

玩转云服务器(3):搭建一个 WordPress 网站

当完成安装宝塔面板,第一次登录到宝塔后台,会弹出推荐安装套件的选择,安装服务器的应用环境,它是一组通常一起使用来运行动态网站或者服务器的自由软件,包括操作系统,网页服务器,数据库管理系统,脚本语言等。 没有特别需求的话,我们选择宝塔推荐的 LNMP 套件,它对 WordPress 网站程序的安装比较友好。 安装方式 ...

WordPress 更新后,回收站文章不见了怎么办?

我原来有篇文章发布后,因不合时宜,被网警蜀黎劝删了,我就放到了回收站中。也不知是从哪次 WordPress 更新升级后,“所有文章”栏目下,“回收站”的链接不见了,更别说回收站中的文章了。 我记得文章是6月份删除的,年前还在的。应该是安装了“计划任务”插件 WP Crontrol 后,在执行了几次同步任务后,不知触发了什么函数 ...

如何解决 WordPress 提示“一小时内已经提交过了”错误?

这两天在更新网站文章时,遇到一个未曾碰到过的错误。 当我新发布或更新了一篇文章后,如果在一小时内对此文章进行更新,则会提示“一小时内已经提交过了”的错误,且没有任何返回或取消的按钮。 但当我重新访问这篇文章时,却发现更新的内容已经保存。 与网友们讨论这个技术问题,认为两种可能,一是 WordPress 程序设置 ...

9 条评论

  1. 关闭头像更彻底。

    • @林林 Gravatar被墙了,WordPress下面最好用WP China Yes插件。

  2. 这真是一个好主意,我怎么没想到搞一个这种服务呢。我在仔细研究一下这个Cravatar

  3. 这个Cravatar头像确实很不错,不过查询改头像官网是个人备案,个人的话不知道是否有财力支持这个项目一直走下去,比较担心“虎头蛇尾”。如果换成企业备案的话,估计会有更多站长信服,然后大家都使用这个Cravatar头像,而不是Gravatar头像。

  4. 对这个一直都无感!

  5. 嘿嘿,我的新主题最新版也支持了!

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。