本文最后更新于 2024-05-10,文章内容可能已经过时。

Cravatar 完美兼容所有 Gravatar 头像 API 接口,同时如果你未在 Cravatar 设置头像,则会先尝试调用 Gravatar 上的头像数据,其后是 QQ 头像,最后会返回我们为你准备的一组默认头像。

特别地:我们会对所有头像进行人工审核(也包括来自 Gravatar 和 QQ 的头像),所有包含暴恐、色情、政治等违反中国法律的内容都会被屏蔽,并返回默认头像。

前言:

最近发现很多搭建好博客,不显示用户头像问题。接下来教大家一个简单的方法。

其实可以用插件实现的,我接下来讲的是代码版利用QQ邮箱显示头像。

第一步

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',
            '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="/jumpGo?goUrl=https%3A%2F%2Fcravatar.cn" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
    }
    add_filter( 'user_profile_picture_description', 'set_user_profile_picture_for_cravatar', 1 );
}

为 Typecho 集成

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

/**
    <ul>
     <li>替换Gravatar头像为Cravatar头像<br> *</li>
     <li>Cravatar是Gravatar在中国的完美替代方案,你可以在<a href="/jumpGo?goUrl=https%3A%2F%2Fcravatar.cn" target="_blank">https://cravatar.cn</a>更新你的头像<br> */</li>
    </ul>

define('__TYPECHO_GRAVATAR_PREFIX__', '<a href="/jumpGo?goUrl=https%3A%2F%2Fcravatar.cn%2Favatar%2F" target="_blank">https://cravatar.cn/avatar/</a>');

以上就是WordPress和Typecho博客的替换方法啦!