21年的时候,在黑桃三的帮助下,将Gravatar头像切换到Cravatar,太太平平用了5年:喜大普奔,恢复博客访问者头像了 ,谁知近来又开始显示默认头像了,正好访问到 一叶竹 的博客,说遇到了同样问题,更改为Weavatar源就OK了,打开Weavatar官网,发现很贴心的给了加入functions.php的代码,对我们这种小白太友好了,于是变更了下,果然有效果,特此感谢!

先备份 functions.php,然后将以下代码加到主题的functions.php文件中即可,当然之前那个Cravatar的代码要删掉:

if ( ! function_exists( 'get_weavatar_url' ) ) {
    /**
     * 替换 Gravatar 头像为 WeAvatar 头像
     *
     * WeAvatar 是新一代头像服务解决方案,可在 https://weavatar.com 修改头像
     */
    function get_weavatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com',
            'gravatar.com',
            'sdn.geekzu.org',
            'gravatar.duoshuo.com',
            'gravatar.loli.net',
            'cravatar.cn',
        );
        return str_replace( $sources, 'weavatar.com', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_weavatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_weavatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_weavatar_url', 1 );
    add_filter( 'um_user_avatar_url_filter', 'get_weavatar_url', PHP_INT_MAX );
    add_filter( 'bp_gravatar_url', 'get_weavatar_url', PHP_INT_MAX );
    add_filter( 'get_avatar_url', 'get_weavatar_url', PHP_INT_MAX );
}
if ( ! function_exists( 'set_defaults_for_weavatar' ) ) {
    /**
     * 替换 WordPress 讨论设置中的默认头像
     */
    function set_defaults_for_weavatar( $avatar_defaults ) {
        $avatar_defaults['gravatar_default'] = 'WeAvatar 头像';
        return $avatar_defaults;
    }
    add_filter( 'avatar_defaults', 'set_defaults_for_weavatar', 1 );
}
if ( ! function_exists( 'set_user_profile_picture_for_weavatar' ) ) {
    /**
     * 替换个人资料卡中的头像上传地址
     */
    function set_user_profile_picture_for_weavatar() {
        return '<a href="https://weavatar.com" target="_blank">您可以在 WeAvatar 修改您的资料图片</a>';
    }
    add_filter( 'user_profile_picture_description', 'set_user_profile_picture_for_weavatar', 1 );
}