最近遇到 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」 这个网址无法访问了,「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';