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

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

昨天开始,是不是我们国内的博友开始发现自己博客评论者的头像开始变成满屏十分漂亮的叉叉,那就对了,宣告了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命名的默认图像,也就是如果评论者没有头像的话,用它替换,不然还是叉叉。

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