这次折腾的目的
我的博客上有3个地方用到了Gravatar,留言+灌水榜+“伟大的墙”,特别是墙每次打开都是缓慢地读头像图片,让我很不舒服。
这次折腾的参考
因为本人在这方面是小白,所以首先当然是去参考前人+高手们的经验之谈,总结下来有两种方法:
一、使用“GRAVATAR CACHE”这个组件(注意不是插件),其步骤比较繁琐。
代表人物分别是:
Showfom的《更换空间 + 再次提速之 Gravatar 头像缓存》
万戈的《缓存 Gravatar 头像至本地服务器》
二、直接使用php代码来搞定,其步骤相对简单。
代表人物:
这次折腾的操作
标题已经夸下海口,十行代码搞定,所以不拿出来献丑是不行的了。我的代码主要是参考了willin的,然后稍做改动以适应我自己的需要。
1 2 3 4 5 6 7 8 9 10 11 12 13 | </p> function my_avatar($email, $rating, $size, $default){ $p = 'avatar/';//这个是指在wp-content下建立一个权限为755并且名称为avatar的文件夹 $f = md5(strtolower($email));//根据email得到Gravatar头像的文件名 $a = $p . $f .'.jpg';//加上jpg后缀 $e = ABSPATH . 'wp-content/' . $a;//Gravatar头像在服务器上的路径 $t = 1209600; //设定为14天,单位:秒,可按需自己改 if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或文件超过14天才更新 $g = '<a href="http://www.gravatar.com/avatar/'">http://www.gravatar.com/avatar/'</a>.$f.'.jpg?s='.$size.'&d='.$default.'&r='.$rating;//获取头像的地址 copy($g, $e);//保存头像到本地服务器 } return get_bloginfo('home').'/wp-content/' . $a;//返回本地服务器上头像的地址 } |
下面简单说一下步骤:
1、先在wp-content下建立一个权限为755并且名称为avatar的文件夹。
2、把上面的代码贴到主题下的functions.php文件里。
3、在需要的地方引用即可。
这次折腾的收获
总有人曾教导我们,要总结才会有收获,OK,我就总结一下吧:
1、全站Gravatar头像缓存到本地服务器,包括插件展示的,提升博客速度(心理作用使然)。
2、开始有点了解php和wordpress,感觉--值得深入!
3、继续发扬“生命不息,折腾不止”的崇高精神,得到心灵上的升华。
O了。
我的空间速度很慢...所以缓存了说不定还不如不缓存
[回复]
sleepy
回复:
十月 22nd, 2009 at 17:26
@Hobo, 换空间吧,呵呵
[回复]
Hobo
回复:
十月 22nd, 2009 at 17:28
@sleepy, 问题是没钱
[回复]
哈哈,比我还会折腾,甘拜下风,学习学习
[回复]
sleepy
回复:
十月 23rd, 2009 at 09:18
@万戈, 是我学习了你的精神好伐,呵呵
[回复]
你的伟大的墙缓存怎么处理的?不会是直接套用已有的缓存地址吧?
[回复]
sleepy
回复:
十月 22nd, 2009 at 23:31
@whisperer, 伟大的墙里把留言者的email传值到这个函数里,有缓存的地址就用,没有就直接生成一个,缓存起来
[回复]
whisperer
回复:
十月 22nd, 2009 at 23:52
@sleepy, 那不错诶,能不能把那部分email给我一下~
[回复]
sleepy
回复:
十月 23rd, 2009 at 09:15
@whisperer, 我整理下发给你
收藏一下 有时间再折腾
[回复]
sleepy
回复:
十月 27th, 2009 at 17:24
@Louis Han, 你已经折腾得很厉害了,呵呵
这么晚才回复你,有点不好意思,顺便测试一下某个插件
sleepy´s last blog ..天哪!IP终于解封了!
[回复]
为了以后升级方便,我还是先不改代码了!
我最喜欢的 就是第一时间升级到新版本!
[回复]
sleepy
回复:
十月 23rd, 2009 at 09:16
@菠萝, 有些插件实现的功能基本上已经能完全满足我的需要了,所以就直接弄到主题里,以后也不用管 它是不是再升级了,呵呵
[回复]
现在不是能正常使用吗?
[回复]
sleepy
回复:
十月 23rd, 2009 at 10:06
@古墓候梅, 当然是可以使用啦,只是原来都是从www.gravatar.com上去取头像图片的,现在是直接从博客所在的服务器上取
[回复]
在需要的地方引用即可?这句话难倒我了
[回复]
sleepy
回复:
十月 25th, 2009 at 20:53
@志言, 就是原来直接去访问www.gravatar.com的地方用这个函数代替
[回复]
我等代码盲就不折腾这个了。
满就慢啊,忍忍就好。
[回复]
sleepy
回复:
十月 26th, 2009 at 23:09
@MuMu'S, php方面我也是小白啦,就是折腾
[回复]
變了, 不但變成 function 還計天數了, 這值得鼓勵! 有空該和你多交流~
我現在遇到的問題是: gravatar 有時連不上, copy 出 0 byte 的空檔案. 煩啊~
[回复]
sleepy
回复:
十月 26th, 2009 at 23:07
@willin, 0byte的问题我倒是没遇到,能不能判断文件大小,然后加载个默认的来解决呢
[回复]
sleepy
回复:
十一月 2nd, 2009 at 09:13
@willin, 谢谢提醒!
[回复]
sleepy
回复:
十一月 3rd, 2009 at 17:05
@willin, 谢谢通知,我已经改了
[回复]
折腾才有收获啊
goldapple´s last blog ..神在车里面 - 图
[回复]
...呃 你这个方法简单多了
[回复]
sleepy
回复:
十一月 3rd, 2009 at 17:06
@chancat, 还好啦,代码还算少
[回复]
够短,不过我刚安装了个cache插件来缓存头像。
Dianso´s last blog ..图书馆
[回复]
sleepy
回复:
十一月 8th, 2009 at 13:25
@Dianso, 是不是yinheli的那个插件,那个是不错的
[回复]