返回列表 发帖

Wordpress优化 代码实现Gravatar头像缓存

最近
一起学建站都在研究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 将以下代码复制到文件中


1//评论头像缓存


2add_filter('get_avatar', 'my_avatar');


3function 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函数

用上面的方法简单方便啊。 不过还有一步是要注意的。得要确认在调用头像的地方都是用get_avatar函数来完成的。一般都是了,只有以前老的theme才不是。不是的话改过来就行。

1<?php
echo
get_avatar(
$comment->comment_author_email,
$size
='48',
$default
= get_bloginfo('wpurl') .
'/avatar/default.jpg'
); ?>






好了就这么简单。马上去刷新你的主页看看你的头像是不是缓存到本地了。。。。

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
一起学建站 免费建站资源

TOP

返回列表