Gravatar被墙后的头像解决方法两则-石头记

前一篇写了一个方法,利用一个评论管理插件可以暂时调用gravatar的头像,但我个人都觉得那方法灵活性太差,而且没中文,所以今天专门在网上看了下别人有没有出方法,别说,还真有,找到“石头记”的一篇文章,觉得这两种方法不错,于是转来记录下,各位访客也可参考下:

从昨天晚上开始,发现自己博客中留言者的头像无法显示,经查发现是gravatar某些网址被墙了.被墙的服务如下:

  • 0.gravatar.com
  • 1.gravatar.com
  • 2.gravatar.com
  • s.gravatar.com

Gravatar服务对于大多数Wordpress博客来说,是一项不可分割的重要的功能,在一位仁兄的博客上看到两个解决方案供大家参考。

 

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

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

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

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’;

然后保存就行了.

 

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

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

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

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



6 responses on “Gravatar被墙后的头像解决方法两则-石头记

    1. Tealun Du Post author

      这两个方法还是挺好用的 我用的插件这个 毕竟用第一个以后要是服务器都被咔了 那我还得弄 毕竟我的博客在国外主机嘛 所以缓存不成问题

  1. Tealun Du

    这两个方法还是挺好用的 我用的插件这个 毕竟用第一个以后要是服务器都被咔了 那我还得弄 毕竟我的博客在国外主机嘛 所以缓存不成问题

  2. Tealun Du

    这两个方法还是挺好用的 我用的插件这个 毕竟用第一个以后要是服务器都被咔了 那我还得弄 毕竟我的博客在国外主机嘛 所以缓存不成问题