Gravatar被墙的解决方法两则

从昨天晚上开始,陆续有网友发现自己博客中留言者的头像无法显示,经调查,发现是“0.gravatar.com”这个网址被墙了。Gravatar服务对于大多数Wordpress博客来说,是一项不可分割的、重要的功能,因此我在这里提供两个解决方案供大家参考。

方案一:避免使用“0.gravatar.com”服务器

通过测试发现,gravatar的主页(http://www.gravatar.com)还是可以访问的,说明只是“0.gravatar.com”这组服务器被墙了,所以可以通过修改相关文件,使wordpress从“www.gravatar.com”获取用户的头像解决这个问题。

打开“wp-includes/pluggable.php”文件,在第1645行找到如下代码块:

1645
1646
1647
1648
1649
1650
1651
1652
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';
}

将其修改为:

1645
1646
1647
1648
if ( is_ssl() )
    $host = 'https://secure.gravatar.com';
else
    $host = 'http://www.gravatar.com';

然后保存就行了。主站Musicster使用的就是这个方法,你可以打开任意一篇文章(比如这篇http://www.musicster.org/posts/383.html)查看某个留言者的头像地址,会发现其已经变为“www.gravatar.com”开头的网址了。

方案二:将Gravatar头像缓存至博客主机

此方法只适用于使用国外主机的博客,原理就是将用户的Gravatar头像缓存至主机服务器上,这样只要你的主机没有被墙而且能连接到Gravatar的服务器,就可以正常显示用户头像了。

要想实现这个功能只需要安装一款名叫“GravatarLocalCache”的插件(插件地址为http://wordpress.org/extend/plugins/gravatarlocalcache/),安装后启用,在后台设置一下缓存时间,然后将“wp-content/glc_cache/”文件夹的权限修改为755即可。

本博客使用的就是这种方法,随便查看一个本站留言者的头像地址,你会发现其已经变为类似“http://blog.musicster.org/wp-content/glc_cache/*******.jpg”这样的本地地址了。

相比较第二种方法,第一种方法的好处就是不占用服务器的资源和流量,而且也适用于国内主机;但是采用第二种方法可以提高头像图片的加载速度,而且一旦Gravatar的服务器全部被墙,也能正常运行。

没有评论: