最近遇到 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) 转载请注明出处,谢谢。