Categorized | WordPress

启用新版的Gravatar头像缓存

Posted on 17 八月 2010 by 柳城 ,阅读 531

好久前就想这样子干的了。Gravatar头像载入那是相当的慢啊。缓存到本地服务器那是需要的。

终于提起精神,花了点时间。

启用Willin Kan的新版Gravatar头像缓存。

新版的Gravatar头像缓存

首先是在根目录下建立一个文件夹avatar,权限755。再在里面放一个默认的头像(default.jpg),没头像的童鞋就会用默认的。

然后是定义一个函数。


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 = 2592000; //偶改为30天, 单位:秒
  if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當头像不存在或文件超过30天才更新
    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来实现。

add_filter('get_avatar', 'my_avatar');

把上面两段代码都丢进主题theme下的functions.php文件就行了。

get_avatar函数

用上面的方法简单方便啊。 不过还有一步是要注意的。得要确认在调用头像的地方都是用get_avatar函数来完成的。一般都是了,只有以前老的theme才不是。不是的话改过来就行。

如改为:

<?php echo get_avatar( $comment->comment_author_email, $size = '48', $default = get_bloginfo('wpurl') . '/avatar/default.jpg' ); ?>

这样就大功告成了。载入速度果然是快了。

转载请注明 : 来源于 启用新版的Gravatar头像缓存 | 柳城

下一篇:

赞助商

113条评论 于 “启用新版的Gravatar头像缓存”

  1. ifenwen ifenwen Says:

    可惜我的不支持~~~

    [回复]

    柳城
    柳城 回复:

    这不大可能吧。。哪方面不支持啊。

    [回复]

    柳城
    柳城 回复:

    都改为get_avatar函数就支持了。。

    [回复]

  2. 冷却水循环机 冷却水循环机 Says:

    呵呵 牛啊

    [回复]

    瘦脸方法
    瘦脸方法 回复:

    哦~!这样的啊,学习鸟。。。。

    [回复]

  3. 恒温槽 恒温槽 Says:

    不错哦,谢谢指教

    [回复]

  4. www.xianouyq.com www.xianouyq.com Says:

    这样看起来就舒服多了

    [回复]

  5. www.shunliuyq.com www.shunliuyq.com Says:

    技术派的就是牛啊

    [回复]

  6. 林木木 林木木 Says:

    表示已用了一段时间了~

    [回复]

    柳城
    柳城 回复:

    恩恩。我比较懒。。现在才改。 [呲牙]

    [回复]

  7. 易赛和捷易通哪个好 易赛和捷易通哪个好 Says:

    怎么都是这么历害·!向你们学习了·!~

    [回复]

  8. 流行童装 流行童装 Says:

    我的博客也不支持这个

    [回复]

    柳城
    柳城 回复:

    不支持就改到支持。。

    [回复]

  9. 奶牛 奶牛 Says:

    吼吼,来支持一个~~~~ [呲牙]

    [回复]

  10. 一岁宝宝的教育 一岁宝宝的教育 Says:

    又学了一招,回去试试。

    [回复]

  11. 飞晏 飞晏 Says:

    在最新的文章中引用了你的方法
    http://www.feiyan.info/379.html

    [回复]

    柳城
    柳城 回复:

    这东西大家都熟透了。呵呵

    [回复]

  12. 哲哲 哲哲 Says:

    一直没有注意头像缓存的申请·今儿就看着你的教程研究下··

    [回复]

    柳城
    柳城 回复:

    我没研究。呵、只是直接拿过来用。不过因为我是用的老theme,需要先改些地方而已

    [回复]

  13. 瓜同学 瓜同学 Says:

    又来观摩下柳哥的新作。。 [呲牙]

    [回复]

  14. 任鸟飞 任鸟飞 Says:

    我也觉得 Gravatar 现在相当缓慢啊。不过这个方法暂时不会用。看起来挺复杂,得不偿失吧。 [大兵]

    [回复]

    柳城
    柳城 回复:

    嘿。。没有比这更简单的了。

    [回复]

  15. 小邪 小邪 Says:

    额,我很早已经把这个改成插件发表了 ~

    [回复]

    柳城
    柳城 回复:

    呵呵。才几句代码。就不用插件了。

    [回复]

    安天下
    安天下 回复:

    改代码麻烦,就奔着小邪的代码而去好了。

    [回复]

    柳城
    柳城 回复:

    对了。发现你的这个插件已经过时了,需要更新一下。 [呲牙]

    [回复]

    柳城
    柳城 回复:

    还好。是我看错了。嗬嗬。

    [回复]

  16. 脱毛 脱毛 Says:

    如此,如此,
    牛×。。。

    [回复]

  17. 山头人 山头人 Says:

    今天流行这个啊,考虑三秒,我还是跟一下流行吧 [呲牙]

    [回复]

    柳城
    柳城 回复:

    最近忙啥。。 是不是生意很好。。

    [回复]

    山头人
    山头人 回复:

    地方节日,很忙.持续一个星期,搞得我严重的睡眠不足.从这个星期六结束了.

    [回复]

  18. 苏扬 苏扬 Says:

    那要是访客越来越多 到最后 你可扛得住 哦 Soga!

    [回复]

    柳城
    柳城 回复:

    都是小图。。 [得意]

    [回复]

  19. joyla joyla Says:

    我的typecho 不知道是否可以实现!

    [回复]

    柳城
    柳城 回复:

    没用过tylecho

    [回复]

    joyla
    joyla 回复:

    啥时候测试下!嘿嘿。

    [回复]

  20. 阿邙 阿邙 Says:

    早用早知道哈哈~

    [回复]

  21. 演讲与口才培训 演讲与口才培训 Says:

    我发现柳城大哥好强。什么都是高手。真妒忌你。呵呵

    [回复]

  22. 机票价格查询 机票价格查询 Says:

    我也学了一招……我得试试……

    [回复]

  23. surda surda Says:

    话说能不能缓存到非博客空间?
    $w = get_bloginfo('wpurl');
    --> $w = "http://xxx.org";
    行的通?

    [回复]

    柳城
    柳城 回复:

    可以的。。改改代码就行了。。都是代码嘛,没有不行的。

    [回复]

  24. 祛斑客 祛斑客 Says:

    学习了,很强大

    [回复]

  25. BoKeam BoKeam Says:

    用了WP Super cache还需要弄这个嘛?

    [回复]

    柳城
    柳城 回复:

    哪东西应该没有缓存头像的吧。。

    [回复]

    BoKeam
    BoKeam 回复:

    add_filter('get_avatar', 'my_avatar');
    放在上面那段函数的后面嘛?

    [回复]

    柳城
    柳城 回复:

    是哦。前后应该都可以吧。

    [回复]

    BoKeam
    BoKeam 回复:

    我用这种方法要出错..

    [回复]

    柳城
    柳城 回复:

    有什么错。我帮你调试。

    [回复]

    BoKeam
    BoKeam 回复:

    用了这个网站就出现不能连接数据库那个常见的错误,覆盖functions.php后才能打开 [擦汗]

    [回复]

  26. MrHei MrHei Says:

    前来观看新作

    [回复]

  27. 赣州SEO 赣州SEO Says:

    学习了。不错。

    [回复]

  28. xiaoz xiaoz Says:

    这两天Gravatar的 0,1确实不稳定,正在考虑本地缓存的问题

    [回复]

  29. 集趣 集趣 Says:

    这必须在linux主机上使用哦~

    我点~~

    [回复]

  30. Dianso Dianso Says:

    我和你一样都用的这个

    [回复]

  31. 海天 海天 Says:

    额 原来你原来都没用啊 呵呵 早该开启的了

    [回复]

  32. 杭州猎头公司 杭州猎头公司 Says:

    是呀。做技术好呀

    [回复]

  33. 阿七 阿七 Says:

    哇哇,正在找呢,这两天Gravatar头像确实N慢啊。。 [可爱]

    [回复]

  34. 利为汇联盟成员 利为汇联盟成员 Says:

    支持一下 [强]

    [回复]

  35. 麻烦积点德 麻烦积点德 Says:

    这样是很快会加快速度的。

    支持。。
    支持6W名的 柳城

    [回复]

  36. 传奇网站模版 传奇网站模版 Says:

    写不错,加油支持一下

    [回复]

  37. 减肥饼干 减肥饼干 Says:

    支持加学习! [强]

    [回复]

  38. Mr.Chen Mr.Chen Says:

    大哥很强大,菜鸟学习了,去研究去了

    [回复]

  39. deardongdong deardongdong Says:

    只要网速快,不缓存也没关系。

    [回复]

  40. DHC DHC Says:

    好博客,收藏了。HOHO

    [回复]

  41. 左旋肉碱 左旋肉碱 Says:

    路过。。。支持一下!

    [回复]

  42. 郑州seo 郑州seo Says:

    我的还不知道支持不支持了

    [回复]

  43. 小周博客 小周博客 Says:

    我不想采集。。。空间可怜

    [回复]

  44. ForRSS ForRSS Says:

    不错,有空我也试试。

    [回复]

  45. Zk Zk Says:

    可惜我的博客用不上~~我也想用啊! [流泪]

    [回复]

    柳城
    柳城 回复:

    怎么可能用不上呢~~

    [回复]

    Zk
    Zk 回复:

    我的是ASP程序,不知如何添加~

    [回复]

    柳城
    柳城 回复:

    asp我也不懂。。
    按照思路用asp写出来也是一样的

    [回复]

  46. 法国jojo 法国jojo Says:

    回去试试看

    [回复]

  47. Mark Mark Says:

    是个非常好的办法,等空下来也修改成缓存~

    [回复]

  48. 外汇实验室 外汇实验室 Says:

    很火啊,我也试试
    博主是不是准备又出个插件哦

    [回复]

  49. 翎羽志 翎羽志 Says:

    不错啊,支持下

    [回复]

  50. xuxun xuxun Says:

    不错不错 新人学习了
    在俺的小站 http://www.haoideas.com 上已经生效了

    [回复]

  51. 韩都衣舍 韩都衣舍 Says:

    学习了

    [回复]

  52. 卿颜阁 卿颜阁 Says:

    支持一下子

    [回复]

  53. 卿颜阁 卿颜阁 Says:

    [回复]

  54. 早期症状 早期症状 Says:

    不错哦 回去试试看~

    [回复]

  55. zwwooooo zwwooooo Says:

    用了很长时间了,但我用的不是willin的了。今天gravatar又抽风了……

    [回复]

  56. 演讲与口才培训 演讲与口才培训 Says:

    柳大哥在这方面是高手呀。呵呵

    [回复]

  57. 阿修 阿修 Says:

    用了很长时间啦

    [回复]

  58. hesiway hesiway Says:

    正是用的这个~

    [回复]

  59. Junan Junan Says:

    WP3.01的头像很慢~我把它修改为以前的头像地址~~感觉快了很多~ [呲牙]

    [回复]

  60. anntgg anntgg Says:

    感谢你的分享,特佩服能鼓敲的牛人

    [回复]

  61. 十年灯 十年灯 Says:

    柳城好厉害....我改代码去 [呲牙]

    [回复]

  62. 十年灯 十年灯 Says:

    立竿见影,刷新一下avatar目录下就N多图片了 [强]

    [回复]

  63. 飞燕南归 飞燕南归 Says:

    我的怎么就不行呢?

    [回复]

  64. 飞燕南归 飞燕南归 Says:

    comment_author_email, $size = '48', $default = get_bloginfo('wpurl') . '/avatar/default.jpg' ); ?>
    这段代码应该加到那个文件里?

    [回复]

    柳城
    柳城 回复:

    这个不是加。是要修改。。comments.php 这个文件吧。只是参考

    [回复]

  65. 三叶草 三叶草 Says:

    支持个,学习下,等下去折腾我的博客去

    [回复]

  66. andy andy Says:

    zww之前一直在博客上写相关的文章,当时我没太在意。原来缓存头像是为了载入速度快啊。。那改天我也试试。。。
    记得童鞋以前写了WP的插件,对吧

    [回复]

    柳城
    柳城 回复:

    在学php嘛。

    [回复]

  67. 树百业 树百业 Says:

    我的公司改版了。

    [回复]

  68. heson heson Says:

    改了有问题 就没用·

    [回复]

  69. zigbee zigbee Says:

    [疑问] 我也用了Willin Kan的新版Gravatar头像缓存,奇怪的是在首页的最新评论中的头像是缓存的,在缓存文件夹中也有相应的头像,但在相应评论的页面,评论者的头像却仍然是Gravatar的链接,这是为什么呢?

    [回复]

    柳城
    柳城 回复:

    不工作的部分就是代码不是标准的嘛。看仔细上面有说到

    [回复]

  70. 两天 两天 Says:

    占空间。。。 [可怜]

    [回复]

  71. ylsnuha ylsnuha Says:

    我以前用的就是这个 但是感觉那些没头像的都显示一样的空白太烦了 我想要显示随机的几何图形那个 怎么让这个代码支持呢 就是没头像的话不会输出一个默认的头绪 是随机的那个

    [回复]

  72. 合肥SEO 合肥SEO Says:

    柳哥的插件 越来越强了。。 以前还没注意 学习了 [抱拳]

    [回复]

  73. Sandy Sandy Says:

    嗯不错不错,我也去试一下缓存用户头像。

    [回复]

  74. Sandy Sandy Says:

    我的模板在comment.php里面用到的是这个函数,怎么修改啊?好像不是get_avatar了。

    [回复]

    柳城
    柳城 回复:

    那就修改为get_avatar就行了。get_avatar的用法大把教程哦

    [回复]

  75. yxiao yxiao Says:

    确实是非常棒,不过我用了一个新浪微博登录的插件,导致头像出错了

    [回复]

    yxiao
    yxiao 回复:

    还有就是豆瓣连接也不能用了,只好把两个插件都停了。。 [流泪]

    [回复]

  76. 加气混凝土设备 加气混凝土设备 Says:

    这个可以试一下呀……

    [回复]

  77. FiFi FiFi Says:

    谢谢博主的分享!我的小博客也使用个这个方法,很成功^_^ :)

    [回复]

  78. 侯永禄 侯永禄 Says:

    我的博客不用插件缓存头像也可以很快载入。修改gravatar地址就行了

    [回复]

3 Trackbacks For This Post

  1. 三个方法解决Gravatar头像不显示的问题 - 飞晏博客 Says:

    [...] 这个方法也是把Gravatar头像缓存到本地,是著名的Willin Kan的杰作,详细的方法请查看这里:http://liucheng.name/1428。 [...]

  2. 启用新版的Gravatar头像缓存 - 疯狂的世界 - 阿疯 Says:

    [...] 转自柳城博客 THE WP ← 8-16 又一天 Leave a comment0 Comments. [...]

  3. 三个方法解决Gravatar头像不显示的问题 | 分享互联 Says:

    [...] 这个方法也是把Gravatar头像缓存到本地,是著名的Willin Kan的杰作,详细的方法请查看这里:http://liucheng.name/1428。 [...]

Leave a Reply

广告招租

[强] [握手] [可爱] [ok] [呲牙] :) [偷笑] [流泪] [疑问] [亲亲] [擦汗] [得意] [衰] [可怜] [抱拳] [坏笑] more »

无觅相关文章插件,快速提升流量