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