使用willin的头像缓存代码出错的原因

更换新的主题后,阿柯一直在给主题添加一些自己想要的功能。比如日志归档、标签云集等页面。当然,为了提高页面访问速度,缓存头像还是有必要的。为了减少插件的使用,想用代码实验头像缓存。

找了很久,发现是willin的头像缓存代码不错。使用起来相当简单,就直接在functions.php中加入如下代码就OK了:

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 = 1209600; //設定14天, 單位:秒
if ( !is_file($e) || (time() – filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
copy($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(‘get_avatar’, ‘my_avatar’);
以上代码还支持后台评论头像的缓存,使用简单,相当不错。
但阿柯使用时,头像能缓存,页面显示一切正常。但登陆后台时出错,不能登陆。折腾了很久都无法解决。最后求助于主题作者麦子花开。麦子的一句话提醒了我。原来出错的原因是我直接使用记事本编辑代码,在保存时一些编码格式不正确的原因。我在登陆后台,使用主题文件编辑器加入代码时,一切正常!!
PS:该方法虽然能缓存头像,但对于没有设置avatar头像的留言,却不能显示自定义的avatar/default.jpg头像。有待博友支招

4 条评论

  • 象牙塔 2012 年 2 月 23 日 回复

    呵呵,这么快就换主题了哈~

    • 阿柯 2012 年 2 月 23 日 回复

      也是在你博客里推荐这款主题,看过之后感觉很不错,就换上试试了。浏览器兼容性不错呀,比D4好很多。你也试试啊

      • 象牙塔 2012 年 2 月 24 日 回复

        不能换了,对蜘蛛不友好~

        • 阿柯 2012 年 2 月 24 日 回复

          唉,阿柯不管了,反正谷歌你怎么换它都没问题,百度也不鸟我。想换就换了

发表评论

电子邮件地址不会被公开。 必填项已用*标注