Gravatar头像缓存出错

7,802 views次阅读
16 条评论

网站访问速度总体已经很快了,但每次打开首页,Gravatar头像加载缓慢总是令人心烦。发现好多博客都开启了头像缓存,很是羡慕,于是我也要试试。

百度了下“wordpress头像缓存”,不外乎有两种方法:添加代码,使用插件。

能用代码解决的问题肯定不会用插件,于是在functions.php内加入缓存代码。

第一次打开首页是非常慢的,估计实在下载图片到本地服务器吧,大概10来秒后,页面才打开。查看“最给力读者”头像地址,显示本地,OK;再查看“最新评论”头像,依然是Gravatar头像源地址,没有缓存成功,查看相关源代码,发现此处并没有调用get_avatar函数;打开“读者墙”,缓存成功,但出现五六行错误代码,原因不明……

不会修改代码,只好使用插件了,选中gravatar mini cache。安装完成后发现“最给力读者”和“留言板”上的读者墙没有问题,但“最新评论”头像依然无法缓存,原因同上。
***********************************************************************************************

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 = home_url(); // $w = get_bloginfo('url');
     $e = preg_replace('/wordpress\//', '', ABSPATH) .'avatar/'. $f .'.jpg';
     $t = 604800; //设定7天, 单位:秒
     if ( empty($default) ) $default = $w. '/avatar/default.jpg';
     if ( !is_file($e) || (time() - filemtime($e)) > $t ) //当头像不存在或者文件超过7天才更新
         copy(htmlspecialchars_decode($g), $e);
     else
         $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
     if (filesize($e) < 500) copy($default, $e);
     return $avatar;
 }
 add_filter('get_avatar', 'my_avatar');
 ***********************************************************************************************

本想就这么用着吧,好歹快了不少,http://gtmetrix.com/评分也足足增加了11分。正高兴时,随手打开一片博文,Chrome显示连接已中断,换IE,文章依然无法打开。

首先想到的原因可能是修改主题时出问题了,立即更换其它主题,首页可以打开,所有文章都打不开,错误依旧。

难道安装插件时修改了数据库?还原最近的数据库,错误依旧……

这就郁闷了,不就改了几行代码,安装了个插件么,难道要我重装博客?!好吧,无奈之下,清空wwwroot目录,重新上传wordpress,好在国内主机速度快,3分钟后安装完毕,再次打开,问题依然没有解决!!

清除浏览器缓存,重启电脑,问题依旧……

实在没办法了,只能猜测可能是主机服务器问题!装完插件后打开首页和读者墙不是非常缓慢么,有可能这个过程造成了服务器负载加重。百度这种情况,还真有类似案例,甚至还被主机商警告过。

好吧,我错了,等上一段时间看看能不能恢复吧,折腾了好几个小时……

中午回来,博客已经正常了~~

正文完
 
评论(16 条评论)
2012-11-29 12:56:11 回复

折腾了一晚上~~

2012-11-29 14:01:35 回复

那到底是什么原因呢

 中国江西省南昌市电信
2012-11-29 15:07:18 回复

有时候出错,没管过

 中国陕西省西安市电信
2012-11-29 21:24:59 回复

呵呵 谢谢博主分享~~~~

当然,好笑博客也期待博主的厚爱~~~~~互动是快乐的源泉

 
2012-11-30 00:36:05 回复

测试下留言 :eek:

2012-11-30 01:05:46 回复

那么我就把你的评论连接改成不不带 blog了

 
2012-11-30 09:10:43 回复

不太懂这些就不管了,错就错了

 中国福建省福州市联通
2012-11-30 10:22:01 回复

Gravatar没有去年那么频繁被强了。

 中国广东省深圳市天威
2012-11-30 17:30:21 回复

我那主题的读者墙和留言头像,就经常显示不出来,或者加载很长时间才出来。

 中国上海上海市电信
2012-12-01 09:39:00 回复

应该不是代码问题吧???我看看我的是怎么写的。。。

 
2013-01-26 00:16:20 回复

缓存成功~~