Gravatar 通用头像无法访问的解决方法

我自己的记忆是从2010年10月14日开始,全球通用头像 Gravatar 被墙,在 loo2k 的印象中是10月15号,看到loo2k的文章,我有着一样的同感:其实我最想不清楚的就是为什么连一个提供头像服务的网站都会敏感到被封掉。但是,这也是我们无法理解GFW的原因吧。

loo2k在知道通用头像被墙后,紧急开发了个缓存插件,用于调用通用头像供国人访问,在我看来,评论没有头像,真的很难看的。这是一个插件形式,下面调用原文吧。

 

如果没有记错的话昨天 10/10/15 Gravatar 的四个存放头像的域名被 GFWed 了;跟着英勇就义的还有 MTime 、玩聚;其实我最想不清楚的就是为什么连一个提供头像服务的网站都会敏感到被封掉;算了,那不是我们能理解的;

Gravatar 被墙,可以暂时用 Gravatar 头像缓存的办法解决,仅限国外主机;这篇文章里面提及的代码根据 Willin 的簡易的 Gravatar 頭像緩存 提供的代码进行修改,第一部分讲头像缓存原理,第二部分提供一个根据这个方法制作的一个头像缓存插件,方便懒得理解的同学直接使用;

因为各个博客显示的 Gravatar 的头像不一定都是一个大小,最初 Willin 是用 CSS 控制头像大小,后来我修改代码直接缓存不一样大小的头像,显示的效果可能更好一点;

Gravatar 头像缓存原理篇

话说也没什么很复杂的原理(如果你会 PHP 的话,可以继续将这段代码进行改进),通过国外能访问 Gravatar 的主机预先下载评论者的头像到主机上,访客访问的头像使用你主机上的头像就能间接的访问到 Gravatar 的头像了

你可以修改自己的主题实现头像缓存,编辑主题文件夹里面的 functions.php 文件,添加以下代码:

 

function cache_gravatar($avatar{
$tmp = strpos($avatar, 'http'); //76
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp- $tmp);//图像地址
$tmp = strpos($g, 'avatar/'+ 7;//31
$f = substr($g, $tmp, strpos($g, "?", $tmp- $tmp);//图像名称
$s = 'size' . substr($avatar,strpos($avatar, "?s=", $tmp+ 3,2);//图像大小 48
$w = get_bloginfo('wpurl').'/wp-content';//博客地址
$e = ABSPATH .'/wp-content/avatar/'. $f . $s .'.png';//主机图像地址
$t = 1209600//14天 单位秒
if!is_file($e) || (time() - filemtime($e)) > $tcopy($g, $e); //当头像不存在或者图像存在时间超过14天更新
iffilesize($e< 500copy($w.'/avatar/default.png', $e);
$avatar = strtr($avatar, array($g => $w.'/avatar/' . $f . $s . '.png'));//将原来的地址替换成本地地址
return $avatar;
}
add_filter('get_avatar', 'cache_gravatar');

然后你需要在你博客的的 FTP 主机博客地址/wp-content/创建一个权限为 755 ,名为 avatar 的文件夹就能使用 Gravatar 的头像缓存了;

Gravatar 头像缓存插件

为了节省大家的时间,我做了一个 Gravatar 的头像缓存插件;上传 – 安装 – 启用,三步就可以了

Gravatar 头像缓存插件下载地址:

Gravatar Cache Plugin (3KB都不到)

对 Gravatar 头像缓存的一些补充

时间仓促,我只在自己的博客上用过,如果你遇到什么问题,欢迎留言讨论;

我使用过一些头像缓存插件,但是在通用头像被墙后,无法显示,今天看到loo2k的插件,使用之,发现可行,所以发文上来与大家分线,希望大家能够支持。

原文链接:http://loo2k.com/gravatar-cache-reset

希望大家也支持一下这位博主。

 

 

{ 发表评论? }

  1. 眯眯熊

    我的博客显示也不正常,可是有的人的是正常的,不知道是怎么回事?

  2. 志英

    连这个也墙?还让不让活了?我说我的博客这两天怎么看不到头像呢?NND

  3. 三叶草

    现在管的越来越宽了。。。

  4. iamkimji

    我是最近才加入通用頭像行列的,
    所以不知道原來這也會被牆啊?

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Pingback & Trackback

  1. Gravatar好像被封了?–附解决方法 « 调侃MAC - Pingback on 2010/10/23/ 05:04