免费国外空间,国外免费空间,'s Archiver

jiang8125 发表于 2012-2-29 03:28

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

[p=30, 2, left]最近
[url=http://www.yqxjz.eu/]一起学建站[/url]都在研究Wordpress[url=http://www.yqxjz.eu/website-seo]优化[/url], 提升网页访问速度 现在搜索引擎都提倡用户体验 之前也发了几篇关于Wordpress提速的网站大家也可以看看《
[url=http://www.yqxjz.eu/1746.html]wordpress速度优化插件 hyper cache 和 db cache reloaded fix[/url]》[/p][p=30, 2, left]《
[url=http://www.yqxjz.eu/1677.html]WordPress打开页面加速的办法[/url]》还推荐机个在线测试网站性能的《
[url=http://www.yqxjz.eu/728.html]推荐几个免费在线测试网站性能的工具[/url]》[/p][p=30, 2, left]今天想和大家说说关于[url=http://www.yqxjz.eu/tag/gravatar]Gravatar[/url]头像缓存到本地的方法。。[/p][p=30, 2, left]第一种方法 利用
[url=http://www.yqxjz.eu/tag/gravatar]Gravatar[/url]头像缓存插件v2.0.0 转载至
[url=http://www.byends.com/]彼岸雨云[/url]
博客[/p][p=30, 2, left]插件设置功能:

1、缓存时间:默认为 14天 = 1209600 秒,记住单位为 秒;

2、存放路径:缓存头像的存放路径,可以不用更改,因为已经是很合理的路径了;

3、删除缓存:这个功能是为了禁用插件时尽量还原系统而设计的,考虑到现在好多插件禁用时都不会还原,总还有或多或少的垃圾残留。默认为“是”,即禁用插件是会自动删除缓存头像,并删除除系统目录外的文件夹,故你不用担心会把系统文件夹删除掉。[/p][p=30, 2, left]注意,本插件的制作环境是:typcho 0.8 | 10.8.15[/p][p=30, 2, left]OK,就这些,这是为typecho做的第一个插件,成功环境是LAMP,有WAMP环境的朋友帮忙测试下,成功以否留个言,不甚感激。[/p][p=30, 2, left]注:

1、此插件是单件版,无需再新建文件夹,上传至 plugins 目录即可激活使用;

2、此插件需要开启 PHP 的 “fopen wrappers”(一般是开启了的,但防采集的空间会关闭此功能),否则无法正常使用,此类问题不再作解答。[/p][p=30, 2, left][url=http://filemarkets.com/file/jiang8125/871bfec5/]立即下载Gravatar头像缓存插件[/url][/p][p=30, 2, left]第二种方法 用代码实现[url=http://www.yqxjz.eu/tag/gravatar]Gravatar[/url]头像本地缓存[/p][p=30, 2, left]方法很简单简单3步便可以实现[/p][p=30, 2, left]1.在你网站的根目录,也就是与 wp-content 文件夹同级的目录下新建立一个 avatar 文件夹,更改权限为0755。这个文件夹就是将来存放 Gravatar 头像的地方。[/p][p=30, 2, left]2.准备一张默认的头像图片,命名为:default.jpg,将其上传到 avatar 文件夹下面。这张图片的作用就是如果用户没有定义过头像,就调用这张默认的头像。[/p][p=30, 2, left]3.在你主题中打开 functions.php 将以下代码复制到文件中[/p]
[align=left][font=Consolas,][align=left][font=Consolas,][align=left][font=Consolas,][table=0]
[tr][td]1[/td][td]//评论头像缓存[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]2[/td][td]add_filter('get_avatar', 'my_avatar');[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]3[/td][td]function my_avatar($avatar) {[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]4[/td][td]  $tmp = strpos($avatar, 'http');[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]5[/td][td]  $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]6[/td][td]  $tmp = strpos($g, 'avatar/') + 7;[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]7[/td][td]  $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]8[/td][td]  $w = get_bloginfo('wpurl');[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]9[/td][td]  $e = ABSPATH .'avatar/'. $f .'.jpg';[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]10[/td][td]  $t = 1209600; //設定14天, 單位:秒[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]11[/td][td]  if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]12[/td][td]    copy(htmlspecialchars_decode($g), $e);[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]13[/td][td]  } else  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]14[/td][td]  if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]15[/td][td]  return $avatar;[/td][/tr]
[/table][/font][/align]
[align=left][font=Consolas,][table=0]
[tr][td]16[/td][td]}[/td][/tr]
[/table][/font][/align]
[/font][/align]
[/font][/align]


get_avatar函数[p=30, 2, left]用上面的方法简单方便啊。 不过还有一步是要注意的。得要确认在调用头像的地方都是用get_avatar函数来完成的。一般都是了,只有以前老的theme才不是。不是的话改过来就行。[/p][align=left][font=Consolas,][align=left][font=Consolas,][align=left][font=Consolas,][table=0]
[tr][td]1[/td][td]<?php
echo
get_avatar(
$comment->comment_author_email,
$size
='48',
$default
= get_bloginfo('wpurl') .
'/avatar/default.jpg'
); ?>[/td][/tr]
[/table][/font][/align]
[/font][/align]
[/font][/align]


[p=30, 2, left]好了就这么简单。马上去刷新你的主页看看你的头像是不是缓存到本地了。。。。[/p]

ML狐狸精 发表于 2012-2-29 23:18

给哥们儿顶上!!!

页: [1]


Powered by Discuz! Archiver 7.2  © 2001-2012 Comsenz Inc.