最近遇到wordpress的头像在国内一直显示不出来,问题发生在WordPress 3.0以上,WordPress的头像服务Gravatar 的部分服务器在国内访问困难, 原因是Gravatar所使用的 edgecast CDN服务遇到了某些问题。

WordPress 3.0通过读取缓存服务器的方式, 减少了对www.gravatar.com的直接请求;
以往直接读取官方服务器。现在都被分流到0.gravatar.com,1.gravatar.com等缓存服务器上了,这次遇上CDN故障,所以就出现
了无法读取头像的问题。

解决办法一:插件

只需修改 Gavatar 头像的访问方式, 直接请求官方服务器即可。 一些热心网友已经找到问题, 并给出了解决方案。
而现在有更方便的解决办法, 插件。Gravatar
Fixed插件通过函数覆盖的方式,重新自定义Gravatar服务器,直接访问www.gravatar.com读取头像,以保证正常访问。

Gravatar插件, 解决 WordPress 头像无法显示的问题

下载链接: gravatar-fixed.zip

解决办法二:代码

“0.gravatar.com”这个网址无法访问了,“www.gravatar.com”这个主页还可以正常访问。那么我们可以修改自己的wordpress,让它从“www.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://www.gravatar.com';

OK,现在头像就可以访问了!本人喜欢用代码,尽量无插件。

来源:浮云站(www.fuyunz.com) 转载请注明出处,谢谢。