最近
一起学建站都在研究Wordpress优化, 提升网页访问速度 现在搜索引擎都提倡用户体验 之前也发了几篇关于Wordpress提速的网站大家也可以看看《
wordpress速度优化插件 hyper cache 和 db cache reloaded fix》
《
WordPress打开页面加速的办法》还推荐机个在线测试网站性能的《
推荐几个免费在线测试网站性能的工具》
今天想和大家说说关于Gravatar头像缓存到本地的方法。。
第一种方法 利用
Gravatar头像缓存插件v2.0.0 转载至
彼岸雨云
博客
插件设置功能:
1、缓存时间:默认为 14天 = 1209600 秒,记住单位为 秒;
2、存放路径:缓存头像的存放路径,可以不用更改,因为已经是很合理的路径了;
3、删除缓存:这个功能是为了禁用插件时尽量还原系统而设计的,考虑到现在好多插件禁用时都不会还原,总还有或多或少的垃圾残留。默认为“是”,即禁用插件是会自动删除缓存头像,并删除除系统目录外的文件夹,故你不用担心会把系统文件夹删除掉。
注意,本插件的制作环境是:typcho 0.8 | 10.8.15
OK,就这些,这是为typecho做的第一个插件,成功环境是LAMP,有WAMP环境的朋友帮忙测试下,成功以否留个言,不甚感激。
注:
1、此插件是单件版,无需再新建文件夹,上传至 plugins 目录即可激活使用;
2、此插件需要开启 PHP 的 “fopen wrappers”(一般是开启了的,但防采集的空间会关闭此功能),否则无法正常使用,此类问题不再作解答。
第二种方法 用代码实现Gravatar头像本地缓存
方法很简单简单3步便可以实现
1.在你网站的根目录,也就是与 wp-content 文件夹同级的目录下新建立一个 avatar 文件夹,更改权限为0755。这个文件夹就是将来存放 Gravatar 头像的地方。
2.准备一张默认的头像图片,命名为:default.jpg,将其上传到 avatar 文件夹下面。这张图片的作用就是如果用户没有定义过头像,就调用这张默认的头像。
3.在你主题中打开 functions.php 将以下代码复制到文件中
1 //评论头像缓存
2 add_filter('get_avatar', 'my_avatar');
3 function my_avatar($avatar) {
4 $tmp = strpos($avatar, 'http');
5 $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
6 $tmp = strpos($g, 'avatar/') + 7;
7 $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
8 $w = get_bloginfo('wpurl');
9 $e = ABSPATH .'avatar/'. $f .'.jpg';
10 $t = 1209600; //設定14天, 單位:秒
11 if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
12 copy(htmlspecialchars_decode($g), $e);
13 } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
14 if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
15 return $avatar;
16 }
用上面的方法简单方便啊。 不过还有一步是要注意的。得要确认在调用头像的地方都是用get_avatar函数来完成的。一般都是了,只有以前老的theme才不是。不是的话改过来就行。
1 <?php
echo
get_avatar(
$comment->comment_author_email,
$size
='48',
$default
= get_bloginfo('wpurl') .
'/avatar/default.jpg'
); ?>
好了就这么简单。马上去刷新你的主页看看你的头像是不是缓存到本地了。。。。
欢迎光临 免费国外空间,国外免费空间, (http://idc866.com/) | Powered by Discuz! 7.2 |