学习如何缓存Wordpress中的Gravatar头像
首先要说的是,这里更多的介绍如何使用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的话,可以直接看我现在的侧边栏,或者是我的留言板。


呃,貌似这个看过很多次哦。
沙发就这样子没了……
@iBoluo 方法不太一样,而且这个是针对Gravatar Cache和WP-RecentComments插件之间。
@iBoluo 一起沙发。。。
笨蛋,写的很好嘛

楼上叫你笨蛋,你们是不是情侣啊????
@搜索引擎优化 不是情侣,是夫妻……
进来学习 o(∩_∩)o
学习了。
@popo 共同进步~
可惜我用的不是WP。
@二人三地话健康 共同学习喔~
@腌生肉 刚开你的博客就看到一只哈士奇~
不缓存也可以的嘛~
@疾风 当然可以啊~只是有时候会忽然加载很慢。觉得有点不舒服。
不错,文文章写的是工程师级别。
@weige 见笑啦,我写出来也只是希望更多的朋友遇到此类问题不必再兜圈子了。
泡面知道的这么多
泡面很有才啊。
学习下,真不错,可惜我的ZB用不上。
写得很不错,伤心的是额用得是zb
大家都在用。。。
@苏囧 囧,你的博客是不是在国外呢?我这里一直都访问不了。
我是第一次看到这个方法,有需要的可以用用,有时的确加载比较慢
缓存Wordpress中的Gravatar头像,很实用,支持一下。
@泡面
确是在国外。。。
人气蛮高的嘛
@古墓候梅 谢谢支持!~
@思维空间 谢谢支持喔,有空要常来喔~
来牛肉面这里看看
@漠岚 小说更新了,不去看看哦?
php代码我看起来头都是大的。真难修改。。
还是用到插件的?还是直接function修改就可以了??不是很明白,我是按照万戈的方法做的.
@itlobo 万戈的方法也可以。但是不知道为何在我这里一直无法实现。这个是用了一个头像缓存程序,实现方式和那个大同小异。
额~~估计我看了还是不会!~~