首页 > 博客技巧 > 学习如何缓存Wordpress中的Gravatar头像

学习如何缓存Wordpress中的Gravatar头像

2010年1月21日 发表评论 阅读评论

  首先要说的是,这里更多的介绍如何使用Gravatar Cache程序来缓存WP-RecentComments插件中的头像,以及缓存WP-reader-wall读者墙中的头像。

  泡面在网上只搜到了利用其他方法缓存这两个插件的头像,而没有相关文章介绍利于Gravatar Cache程序来缓存,所以泡面就再写一篇关于WordPress的文章,来弥补这篇空白吧!(也可能有,泡面手拙没找到)

  首先要知道Gravatar Cache不是一个插件,是一个缓存头像的程序,这方面的文章泡面推荐大家直接去阅读以下网址即可明白,写的很清楚:ishawn的博客万戈的博客。以上两个地址都有详细介绍。

  泡面使用的是MG12的Inove主题,是需要去修改functions.php文件,和一般的主题修改Comments.php有所不同。这特别说明一下:

INOVE主题下缓存头像做如下修改

1.打开主题目录下的function.php文件。大概在第540行处有如下代码:

<?php if (function_exists('get_avatar') && get_option('show_avatars')) { echo get_avatar($comment, 32); } ?>

2.全部替换为:

<img src="http://www.viccowang.com/blog/gravatar/cache/avatar/<?php echo md5(strtolower($comment->comment_author_email)); ?>" alt="" width="32" height="32" />

这里的URL根据自己情况来修改,这里引用的是泡面的博客。

以上方法在做完以后,大家即可将所有评论中的头像进行本地化缓存了,不过并没有介绍WP-RecentComments 和读者墙如何缓存。其实大同小异,泡面将自己改好的程序列出来供大家参考。

修改WP-RecentComments的方法

1.打开该插件目录,找到Core.php文件。大概在335行中有如下代码:

function rc_get_avatar($show, $position, $size, $default, $email) {

...

 return $avatar;

}

中间很多就掠过了,只节选最开始和最后面。

2.将这部分代码替换为:

function rc_get_avatar($show, $position, $size, $default, $email) {

 $avatar = '';

 if ($show == 'true' && function_exists('get_avatar') && get_option('show_avatars')) {

  $p = '/blog/gravatar/cache/avatar/';   //这里是你gravatar缓存的路径,根据自己的进行修改。

  $f = md5(strtolower($email));

  $a = $p . $f ;

  $avatar = '<div><img src="'.$a.'" style="width:'.$size.'px;height:'.$size.'px;" alt="" /></div>';

 }

 return $avatar;

}

这样就改好了。重新刷新首页,看看侧边栏的头像留言部分是不是本地化了呢?

WP-reader-wall读者墙插件本地化头像修改

1.用Editpuls打开读者墙PHP文件(就一个文件,名字不写了)。找到大概第52行。有如下代码:

$tmp = "<a href='".$url."' title='".$comment->comment_author." (".$comment->comment_nums.")'><img width='".$imgsize ."' height='".$imgsize ."' src='http://www.gravatar.com/avatar.php?gravatar_id=".md5( strtolower($comment->comment_author_email) )."&size=".$imgsize ."&d=identicon&r=G' alt='".$comment->comment_author."' /></a>";

$output .= $tmp;

       }

2.将其替换为:

$tmp = "<a href='".$url."' title='".$comment->comment_author." (".$comment->comment_nums.")'><img width='".$imgsize ."' height='".$imgsize ."' src='http://www.viccowang.com/blog/gravatar/cache/avatar/".md5( strtolower($comment->comment_author_email) )."' alt='".$comment->comment_author."' /></a>"; 

$output .= $tmp

}

这其中的是需要根据自己的路径填写的。请大家注意。这样就修改好了。读者墙的头像也本地化了。

最后,泡面想说的

  有人会问,这样不是无形当中增加太多流量了吗?其实,每一个头像的大小大概为1-6KB左右,我们在平时使用的时候,经常遇到直接调用头像非常缓慢的情况,这样不仅会影响网页完成速度,也会影响某些博友的心情,一个个的空白不知道是什么东东。本地化以后会大大提高访问速度。至于流量的话,泡面认为没有提高多少。仁者见仁吧,泡面认为牺牲这点流量还是很值得的。

  DEMO的话,可以直接看我现在的侧边栏,或者是我的留言板。

  原创文章请注明转载自不吃泡面的泡面,本文地址: 学习如何缓存Wordpress中的Gravatar头像
  1. 2010年1月21日16:51 | #1

    呃,貌似这个看过很多次哦。

  2. 2010年1月21日17:04 | #2

    沙发就这样子没了……

  3. 2010年1月21日17:09 | #3

    @iBoluo 方法不太一样,而且这个是针对Gravatar Cache和WP-RecentComments插件之间。 :razz:

  4. 2010年1月21日17:28 | #4

    @iBoluo 一起沙发。。。

  5. 毛毛猪
    2010年1月21日18:33 | #5

    笨蛋,写的很好嘛 :lol: :grin:

  6. 2010年1月21日20:25 | #6

    楼上叫你笨蛋,你们是不是情侣啊????

  7. 2010年1月21日20:28 | #7

    @搜索引擎优化 不是情侣,是夫妻…… :grin:

  8. 2010年1月21日21:25 | #8

    进来学习 o(∩_∩)o

  9. 2010年1月21日21:36 | #9

    学习了。

  10. 2010年1月21日21:36 | #10

    @popo 共同进步~ :roll:

  11. 2010年1月21日21:39 | #11

    可惜我用的不是WP。

  12. 2010年1月21日21:48 | #12

    @二人三地话健康 共同学习喔~ :grin:

    @腌生肉 刚开你的博客就看到一只哈士奇~ :idea:

  13. 2010年1月21日23:33 | #13

    不缓存也可以的嘛~

  14. 2010年1月21日23:49 | #14

    @疾风 当然可以啊~只是有时候会忽然加载很慢。觉得有点不舒服。 :x

  15. 2010年1月21日23:56 | #15

    不错,文文章写的是工程师级别。

  16. 2010年1月22日00:02 | #16

    @weige 见笑啦,我写出来也只是希望更多的朋友遇到此类问题不必再兜圈子了。 :razz:

  17. 2010年1月22日08:49 | #17

    泡面知道的这么多

  18. 2010年1月22日09:49 | #18

    泡面很有才啊。

  19. 2010年1月22日09:56 | #19

    学习下,真不错,可惜我的ZB用不上。

  20. 2010年1月22日11:14 | #20

    写得很不错,伤心的是额用得是zb :cry:

  21. 2010年1月22日11:54 | #21

    大家都在用。。。

  22. 2010年1月22日12:11 | #22

    @苏囧 囧,你的博客是不是在国外呢?我这里一直都访问不了。 :idea:

  23. 2010年1月22日12:34 | #23

    我是第一次看到这个方法,有需要的可以用用,有时的确加载比较慢

  24. 2010年1月22日13:22 | #24

    缓存Wordpress中的Gravatar头像,很实用,支持一下。

  25. 2010年1月22日13:25 | #25

    @泡面
    确是在国外。。。

  26. 2010年1月22日13:28 | #26

    人气蛮高的嘛

  27. 2010年1月22日13:36 | #27

    @古墓候梅 谢谢支持!~ :razz:

  28. 2010年1月22日14:12 | #28

    @思维空间 谢谢支持喔,有空要常来喔~ :grin:

  29. 2010年1月22日14:30 | #29

    来牛肉面这里看看

  30. 2010年1月22日14:42 | #30

    @漠岚 小说更新了,不去看看哦? :arrow:

  31. 2010年1月23日18:35 | #31

    php代码我看起来头都是大的。真难修改。。

  32. 2010年1月24日19:46 | #32

    还是用到插件的?还是直接function修改就可以了??不是很明白,我是按照万戈的方法做的.

  33. 2010年1月24日20:12 | #33

    @itlobo 万戈的方法也可以。但是不知道为何在我这里一直无法实现。这个是用了一个头像缓存程序,实现方式和那个大同小异。

  34. 2010年1月26日14:44 | #34

    额~~估计我看了还是不会!~~

  35. 2010年6月14日00:42 | #35

    :!: 竟然这次是搜索来的 呵呵


订阅评论 您在发表评论后,10分钟内仍然可以继续修改。