0%

Gravatar头像不显示解决办法

Gravatar
最近遇到wordpress的头像在国内一直显示不出来,问题发生在WordPress 3.0 以上,WordPress 的头像服务 Gravatar 的部分服务器在国内访问困难,原因是 Gravatar 所使用的 edgecast CDN 服务遇到了某些问题,WordPress 3.0 通过读取缓存服务器的方式,减少了对 www.gravatar.com 的直接请求;以往直接读取官方服务器,现在都被分流到 0.gravatar.com, 1.gravatar.com 等缓存服务器上了,这次遇上 CDN 故障,所以就出现了无法读取头像的问题。

解决办法

“0.gravatar.com”这个网址无法访问了,“cn.gravatar.com”这个主页还可以正常访问。那么我们可以修改自己的wordpress,让它从“cn.gravatar.com”获取用户的头像解决这个问题:
 找到“wp-includes/pluggable.php”文件,找到代码:

if ( is_ssl() ) {
    $host = 'https://secure.gravatar.com';
} else {
    if ( !empty($email) )
        $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );
    else
        $host = 'http://0.gravatar.com';
}

替换为:

if ( is_ssl() ) {
    $host = 'https://secure.gravatar.com';
} else {
    $host = 'http://cn.gravatar.com';
}

OK,现在头像就可以访问了!