wordpress中把用户的头像从gravatar中缓存到本地于提高访问速度
Wordpress中的评论中,用户的头像都是调用gravatar的。而gravatar是在国外,并且他们的服务器用户量也很大,响应、访问速度都比较慢。因此像我这种追求完美的人来说,这点是接受不了的。前段时间在网上找到了把gravatar头像缓存到本地的方法,运行了好些天发现不错。特推荐给大家。
方法比较容易,不搞插件。
一、直接在主题下的functions.php文件中,增加以下代码:
//把用户的头像从gravatar中缓存到本地,以提高访问速度
function my_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'tsov-net-userface/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('wpurl');
$e = ABSPATH .'tsov-net-userface/'. $f .'.gif';
$t = 2592000; //偶改为30天, 单位:秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當头像不存在或文件超过30天才更新
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/tsov-net-userface/'.$f.'.gif'));
if ( filesize($e) < 500 ) copy($w.'/tsov-net-userface/default.gif', $e); return $avatar; } add_filter('get_avatar', 'my_avatar');
2010-09-08补充: 我现在把文件上传到115盘中。现在可以从下面的地址里下载:
http://u.115.com/file/f986b3a364
提取码: f986b3a364
二、然后在网站根目录下,新建一个文件夹,名字为“tsov-net-userface”,在LIUNX下系统下需要设置文件属性为可写(FTP登录》选中文件夹》右键》属性》权限中设为777,即可)。
三、在新建议的文件夹tsov-net-userface中,放置一个默认的头像default.gif。尺寸就同你原来评论用户的头像一样大。
就这样,当有访客打开评论列表时,就会自动把用户的头像缓存到文件夹tsov-net-userface中。 若你想对缓存时间进行调整,就看上面代码的说明吧。
再说明一下,这个方法是从网上找来到,不是我原创的。原文找不到了,这些感谢一下最初想出这办法的童鞋。
- 相关文章
- 如何有效确定网站关键词[转载]Mysql性能之SQL语句性能优化Apache使用中没有的模块如何加载?如何把wordpress优化到极致?(Yslow打98分)在IIS中删除ETag的方法[转载]网站用户体验优化怎么做?通用设置htaccess来优化wordpress实现yslow评分达到A优化wordpress的图库(相册)lightbox效果PHP 性能优化技巧wordpress半角引号变成全角引号问题的解决解决tsov出国后无法直接在后台备份及发送邮件的问题Tsov-Weather plus升级至1.4版(解决UTF-8编码和指定城市的功能)TSOV的wordpress天气插件功能升级了[紧急通告]TSOV的wordpress天气插件访问量过大,请更换分站地址网站PR更新的感悟我的wordpress weather widget(天气插件)饲养蜘蛛技巧MySQL优化全攻略-相关数据库命令优化MySQL数据库性能的几个好方法
当前共有12条评论,我也要发表: