网站访问速度总体已经很快了,但每次打开首页,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分钟后安装完毕,再次打开,问题依然没有解决!!
清除浏览器缓存,重启电脑,问题依旧......
实在没办法了,只能猜测可能是主机服务器问题!装完插件后打开首页和读者墙不是非常缓慢么,有可能这个过程造成了服务器负载加重。百度这种情况,还真有类似案例,甚至还被主机商警告过。
好吧,我错了,等上一段时间看看能不能恢复吧,折腾了好几个小时……
中午回来,博客已经正常了~~
缓存成功~~
应该不是代码问题吧???我看看我的是怎么写的。。。
@Tokin 还没找到真正原因哈 :eek:
我那主题的读者墙和留言头像,就经常显示不出来,或者加载很长时间才出来。
@秦天添博客 所以我才要缓存头像,可惜失败了 :eek:
Gravatar没有去年那么频繁被强了。
@那不是我 但是加载的好慢啊 :cry:
不太懂这些就不管了,错就错了
那么我就把你的评论连接改成不不带 blog了
测试下留言 :eek:
@admin 继续测试 :eek:
呵呵 谢谢博主分享~~~~
当然,好笑博客也期待博主的厚爱~~~~~互动是快乐的源泉
有时候出错,没管过
那到底是什么原因呢
@oyoy :eek: 要么我网络问题,要么服务器问题
折腾了一晚上~~