A-A+

修复被墙的Gravatar头像

2010年10月18日 Wordpress 评论 39 条 阅读 4,262 views 次

从前几天开始,博客上的Gravatar的镜像站被我们伟大的墙给干掉了,好多博客上面的头像都变成了叉叉,开始还以为是我网络的问题,后来经过小黑的提醒,才知道这是伟大城墙的杰作,想不到我们伟大的长城连我们的头像都不放过,佩服,也怪Wordpress的官方,为啥要在3.0版本后的代码里直接调用Gravatar的镜像站,而不是想2.9以前都是调用主站的,要是那天连主站都墙了,那谁也怨不着了,只能怪自己生错地方了。

下面是小黑提供给我的恢复方法:
在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';

除了这个方法还有一米提供的缓存头像的方法,不过这种方法之适合服务器在国外的博客:

// 头像缓存
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命名的默认图像,也就是如果评论者没有头像的话,用它替换,不然还是叉叉。

另外网上还有高手为此做了一个插件,叫Gravatar Fixed,其实原理和上面提到的第一种方法一样,就是替换头像图片地址,这里就不多做介绍了,不喜欢加代码的朋友可以直接安装插件搞定,该插件下载:原作者下载地址千脑网盘下载

39 条留言  访客:39 条  博主:0 条

  1. 何朝城

    看到大家的Gravatar头像被墙,我这里也提供一个用七牛搭建的Gravatar头像缓存。七牛的速度我想大家也体验过了吧!WordPress博客请将下面代码添加到当前主题的functions.php文件中即可解决。

    //=== Gravatar头像缓存 ===//
    function gravatar_cache($avatar){
    $avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://gravatar.hechaocheng.cn",$avatar );
    $avatar = preg_replace( "/\?s\=/",".png?s=",$avatar );
    return $avatar;}
    add_filter( 'get_avatar', 'gravatar_cache' );

    不要感谢我,请叫我雷锋!!

  2. asa

    看看

  3. asa

    k看看

  4. 土木坛子

    多谢,方法管用,以前我都是关闭这个功能,现在又开放了。

  5. 水车

    我自己的博客也用到Gravatar的图像,还没遇到过问题。

  6. 呆呆虎

    博客这东西,我经常听说,却不知道怎么整,等空了,我还是要玩下,大哥,你的点击率真高

  7. su

    很久没更新了啊 给你点广告了啊

  8. an9

    技术贴,路过。

  9. 经典美剧

    好多人回复哦

  10. 先看看

    好久都没有更新了吧

  11. 玳玳

    我还没有注意到这个问题呢….

  12. 搓板

    发现许多人都发布这篇文章了。

  13. 小邪

    是Gravatar的CDN服务出问题鸟 ╮(╯▽╰)╭ ~

  14. Firm

    我是一直开着头像缓存来着

  15. 濟川

    现在好像恢复正常了

  16. smigoo

    天 头像都黑 太变态了 还好现在觉悟了 又恢复了~~

  17. 菠萝

    你这里还是挺热闹。。。。

  18. 菜牛

    我没有处理就好了,看来墙也抽风啊。

  19. 小杰

    已经搞定~~

  20. 雅丹

    直接用的修复插件呵呵!~

  21. 一夜雨天

    搞不懂。。。

  22. 龙城瓶子

    第二个是willin大师的代码
    为什么国内服务器不行?

    • insect

      国内都被墙了,怎么缓存啊,不过现在好像已经恢复了

      • 龙城瓶子

        早点缓存,就不怕被墙了哇

        • insect

          那如果墙了后还有新读者过来呢?

          • 龙城瓶子

            那也有个默认头像的哇。。。

  23. 超人

    从cnbeta过来了。 你够n的啊。。

    • insect

      什么意思,cnbeta有我链接?这两天没投稿了啊

      • 超人

        cnbeta头版flash 3个图片。。你的在其中。太强大了

        • insect

          呵呵,cnbeta对我这篇文章比较关爱啊,这是第二次顶置了

  24. 虫儿

    还真是没太注意这个问题,不过好象已经正常了

  25. 武龙杰微博客

    我看看我的掉了没!呵呵!

    • insect

      现在已经好了

  26. 学夫子

    就是一个服务器给墙了,不过现在好像回来了

    • insect

      现在是好了

  27. 卢松松

    我也一直很担心这点,asp博客怎么解决呢

    • insect

      ASP的没研究过

  28. huangjun

    现在已经恢复了。

    • insect

      恢复了?看来是临时性的

给我留言

Copyright © 虫子窝 保留所有权利.   Theme  Ality

用户登录

分享到: