近日,Gravatar网站CND(内容分发网络)未知原因出现问题,国内无法显示以0.gravatar.com和1.gravatar.com为前缀的头像,而以www.gravatar.com为前缀的却可以,如果你启用了头像缓存插件或主题具备头像缓存功能,空间主机又在国外,不会受到影响,而国内主机则无法实现头像缓存, 这一问题严重拖慢了页面打开速度.

为什么有的站点的Gravatar头像地址是以www.gravatar.com开头,有的却是以0.gravatar.com和 1.gravatar.com为前缀呢?WordPress 从2.5版开始集成了Gravatar头像功能,随着使用Gravatar头像的用户越来越多,为了减轻服务器负担,Gravatar网站采用CDN(内 容分发网络),就近从Gravatar网站服务器加载头像,提高页面打开速度。正因为如此从WordPress 3.0开始,改进源代码适应CDN,提高头像加载速度。默认情况下还在使用老版本WordPress的用户,由于没有启用CDN,所以前缀是 www.gravatar.com,直接从主站加载头像,不会受到影响。

要解决WordPress 3.01 Gravatar头像无法显示的问题,方法如下:

打开WordPress程序wp-includes目录中的pluggable.php
在第1649行找到:

$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );

修改为:

$host= sprintf( "http://www.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );

在第1651行找到:

$host= 'http://0.gravatar.com';

修改为:

$host = 'http://www.gravatar.com';