人说,优秀的服务在天朝上国只有一种命运,那就是:撞墙。

所以,这句话再次得到验证,而且还只是对国内访问速度并不友好的全球头像服务,我的歌娘唉,你还让不让人活了啊。

昨天开始,是不是我们国内的博友开始发现自己博客评论者的头像开始变成满屏十分漂亮的叉叉,那就对了,宣告了gravatar开始撞墙了。

所以现在解决方法就来了,但是只适用于博客服务器在墙外这,墙内者,应该不在乎这个服务被墙吧,那就找我啊,卖给你墙外服务空间。

代码如下:

// 头像缓存
function my_avatar($avatar) {
  $tmp = strpos($avatar, 'http');
  $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
  $tmp = strpos($g, 'avatar/') + 7;
  $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
  $w = get_bloginfo('wpurl');
  $e = ABSPATH .'avatar/'. $f .'.jpg';
  $t = 1209600; //設定14天, 單位:秒
  if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
    copy(htmlspecialchars_decode($g), $e);
  } else  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
  if ( filesize($e) < 500 ) copy($w.'/avatar/default.jpg', $e);
  return $avatar;
}
add_filter('get_avatar', 'my_avatar');

将这些代码复制粘贴进你博客的function.php文件,什么?没有这个文件,那你愿你放哪里放哪里,或者找你主题作者去。狠揍他一顿,为什么不给我这个文件。

同时,注意是同时啊,在wp-content目录的同级目录下建立avatar文件夹,并且建立一个以default.jpg命名的默认图像,也就是如果评论者没有头像的话,用它替换,不然还是叉叉。

最后感谢国家,感谢祖国,感谢党,感谢父母,让我生在天朝上国。

10 条评论

  • 途途 2010/10/16 09:19 回复

    恩,这个好,我去试下,截止目前头像都显示叉叉~

  • 途途 2010/10/16 09:21 回复

    如果gravatar一直被墙,估计这招也不好使~

  • 途途 2010/10/16 09:23 回复

    奇怪了
    又好了
    纠结~

  • 途途 2010/10/16 09:29 回复

    @途途
    之前理解错了,如果G被墙了,那这招很好用!!

  • 一米 2010/10/17 19:13 回复

    @ 途途
    好用就行,希望更多人可以用,呵呵。 :lol:

  • yesureadmin 2010/10/18 10:49 回复

    现在还没有发现XX,不知道是不是和我以前缓存了有关系,现在不想整了,哪天都是XX的话,再来COPY

  • 秦大少 2010/10/18 15:16 回复

    还有个改域名的方法,更简单一点。

  • 林木木 2010/10/27 13:26 回复

    解封解封咯~

  • 一米 2010/10/28 13:57 回复

    @ yesureadmin
    嘿嘿,不是解封了,就是你看得晚了。
    @ 秦大少
    恩,但是一升级,就没有了。
    @ 林木木
    嘿嘿,听说了。