最近遇到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,现在头像就可以访问了!