最近
一起学建站都在研究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头像缓存插件 第二种方法 用代码实现Gravatar头像本地缓存 方法很简单简单3步便可以实现 1.在你网站的根目录,也就是与 wp-content 文件夹同级的目录下新建立一个 avatar 文件夹,更改权限为0755。这个文件夹就是将来存放 Gravatar 头像的地方。 2.准备一张默认的头像图片,命名为:default.jpg,将其上传到 avatar 文件夹下面。这张图片的作用就是如果用户没有定义过头像,就调用这张默认的头像。 3.在你主题中打开 functions.php 将以下代码复制到文件中
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); |
get_avatar函数用上面的方法简单方便啊。 不过还有一步是要注意的。得要确认在调用头像的地方都是用get_avatar函数来完成的。一般都是了,只有以前老的theme才不是。不是的话改过来就行。 1 | <?php
echo
get_avatar(
$comment->comment_author_email,
$size
='48',
$default
= get_bloginfo('wpurl') .
'/avatar/default.jpg'
); ?> |
好了就这么简单。马上去刷新你的主页看看你的头像是不是缓存到本地了。。。。 |