Gravatar头像被墙的两种解决方法

LMS
1.9K+ 15

听说Gravatar被墙了,我有点想不通,这个提供头像服务的gr级别的阿凡达为什么会列入被墙的范围呢?一个用起来最大都不想超过64*64的图像,难道还满载着所有资本主义的血和肮脏的东西吗?真的想不通!或许是和它同IP的服务器上放有什么不和谐的网站吧......

不管怎么个想不通,这个Gr阿凡达还是被墙了,结果是博客上评论的作者头像都是叉叉,firefox还好,没图片就直接空白,只是这大面积的空白看着也不舒服,所以得想办法解决。

LP同学从别人那转了两个方法,我就现学现用了。

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

通过测试发现,gravatar的主页还是可以访问的,所以可以通过修改相关文件,使wordpress从gravatar主页获取用户的头像解决这个问题。

打开“wp-includes/pluggable.php”文件,在第1645-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';
}

将其修改为:

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

然后保存覆盖就行了。

-----------2010.10.19更新方法一补充开始--------------

如果你觉得方法一修改源文件麻烦的话,现在可以通过插件来实现了。Gravatar Fixed插件的工作原理和方法一完全一样,只是用起来更为方便,如图:

-----------2010.10.19更新方法一补充结束--------------

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

以前在willin大师的博客上有看过介绍头像缓存到自己主机的方法,可是试了几次后不成功,问过林木木同学他说也不知道怎么解决,后来就放弃了。这回这个办法是直接通过插件缓存到空间上,也就是安装GravatarLocalCache插件,wp3.0后安装插件很简单了,到后台插件那查找这个插件名字,然后点安装就可以了。安装完插件后在wp-content下会多一个glc_cache的文件夹,如果没有,自己手动建一个,将文件夹的权限修改为755即可。

不过插件的这个方法只适用于使用国外主机的博客,原理就是相当于从你国外的主机访问Gravatar服务器,然后将头像缓存在你主机空间上,然后再通过你的主机空间输出到博客页面上来(留言者的地址变为http://muxer.cn/wp-content/glc_cache/*******.jpg的形式),只要你的博客能访问,当然不存在墙不墙的问题了。

如果博客设置有缓存,可能头像不会马上就改过来。

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

当然,你也可以两种方法一起用。

THE END

评论 15

  1. nowvow
    🏅

    谢谢, 可以了

  2. 真是烦啊,一会这个看不了,一个那个用不了!
    要是社交的话,有个多说,也是可以解决些问题的……
    站长的法子,晚上试试……

  3. 我干脆关闭了头像显示.

    本站的gravatar头像好像都存在duoshuo的 域名上.难道是人家缓存了?

    呵呵.

  4. sherry
    🏅🏅🏅

    呵呵,谢谢,搞定了~~~ :!:

  5. 万戈
    🏆🏅

    大家终于都意识到头像缓存的重要性和必要性了

    1. 可惜当时没有成功,最后放弃了,现在只有依赖插件了。

  6. raiya
    🏅

    谢谢分享,已解决了~~ :twisted:

      1. 交换个链接吧~(∩_∩)~

  7. m@rk
    🏆🏆

    测试头像。 :neutral:

    1. 能否直接删除掉取Gravatar头像的功能?

发表评论

Submit