Gravatar 头像缓存的问题一直困扰着启用了Gravatar 头像的博主们,都希望把Gravatar 头像缓存在本地服务器,才不会在调用Gravatar 头像的读者墙那样,一打开就像放电影一样一个个的加载,这可怎么能受得了。怎么才能简单实现Gravatar 头像缓存呢,参照网上方法自己DIY代码吧,又太繁琐了——爱折腾的会很乐意。
还是推荐一个插件吧:mini-gravatar-cache(点击下载)
然后上传到主题plugins
最后在后台启用就OK,就这么简单。
function get_avatar_wcache(imgc) {
ava_time = 1209600;
ava_dir_abs = ABSPATH.'wp-content/plugins/mini-gravatar-cache/iava/';
ava_dir_url = get_bloginfo('wpurl').'/wp-content/plugins/mini-gravatar-cache/iava/';
preg_match('/avatar\/([a-z0-9]+)\?s=(\d+)/',imgc,imgc_md5);
ava_mail_md5 =imgc_md5[1];
size =imgc_md5[2];
ava_img_abs =ava_dir_abs.ava_mail_md5.'.jpg';
ava_img_url = ava_dir_url.ava_mail_md5.'.jpg';
ava_default =ava_dir_url.'default.jpg';
if (!is_file(ava_img_abs)||(time()-filemtime(ava_img_abs))>ava_time){
ava_get_url = 'http://www.gravatar.com/avatar/'.ava_mail_md5.'?s=48&d='.ava_default.'&r=G';
copy(ava_get_url,ava_img_abs);
}
if (filesize(ava_img_abs)<500) {
copy(ava_default,ava_img_abs);
}
return '<img src="'.ava_img_url.'" width="'.size.'" height="'.size.'" />';
}
add_filter('get_avatar','get_avatar_wcache');
这就是整个插件的代码,解释下:
- 下载的缓存图像在 wp-content/plugins/mini-gravatar-cache/iava/ 下。
- 头像保存的文件名是你邮箱的MD5值,其实就是你头像在gravatar官方上URL的一段。
- 头像不存在或超过1209600秒,就是14天才更新。
- 如果没头像呢就显示默认头像。(这不废话么)
- width,height这个可以自己改哈,不过也没什么意思。
原理很简单,想DIY的就自己在上面DIY吧~不想的就直接用吧~
有些人博客上启用缓存后头像都变得很模糊
支持WP3.0不?
安装成功,激活的时候,显示:插件的头部错误。
@迎接 @迎接, 好像php版本的问题,主机还是php4的,可怜“`
@迎接 @迎接, :尴尬: 还有这样啊~好吧~
用了感觉服务器 被拖累了。。。
头像放gravatar那里,速度还是挺快的
插件禁用了。
@诸葛小小 @诸葛小小, 额~这个看来也是问题哈~ :汗:
我也用了一个插件,是荒野无灯的,不过貌似这个小点。
@朵未 @朵未, 这个真的很小,而且不用修改啥~方便多了~ :嘻:
没必要吧,觉得挺快的还是,,, :纠结:
@ugotta @ugotta, 头像多了就卡~现在用了还好点~ :微笑:
飘过-.-!
@海建.李 @海建.李, :微笑:
:纠结: :纠结:
@灵亦rEd @灵亦rEd, :嘻: :嘻:
emlog,应该都是一样的原理
@学夫子 @学夫子, 恩恩~可以移植过去~