之前整理过wp用户头像不显示,需要切换一下国内头像的cdn,如下:

add_filter('get_avatar', function ($avatar) {
    return str_replace([
    'www.gravatar.com/avatar/',
    '0.gravatar.com/avatar/',
    '1.gravatar.com/avatar/',
    '2.gravatar.com/avatar/',
    'secure.gravatar.com/avatar/',
    'cn.gravatar.com/avatar/'
    ], 'gravatar.wp-china-yes.net/avatar/', $avatar);
    });

但是,网站加载头像还是很慢,甚至头像好久也不出现,处于好奇心,我打开了这个网站:gravatar.wp-china-yes.net ,嗯哼哈,然后看到就这样了,如下:

wordpress头像不显示-解决WordPress用户头像不显示问题-QUI-Notes

咦,国内的头像cdn也转移了,看来需要改一下解析地址了,然后经过多次试验,最终代码如下:

if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
    *使用Cravatar头像服务替换Gravatar
    * @param string $url
    * @return string
    */
    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 );
}

这样就ok了,刷新一下网站,发现久违的头像终于恢复了,感谢这位大佬的操作,让国内wp用户也找到解决头像异常的问题。