Gravatar头像都知道吧?全球通用头像、不知道的真心不适合做站,今天就介绍WordPress头像本地化!
这个教程是很久之前就在网上看到过了,只不过昨天有一个友友说发出教程,那就发出来吧~
首先说一下他的原理,这个其实就是自动获得图片后保存于本地、然后下次就会自动从本地加载。这样一来速度就可以加快很多了、但是流量就是自己的了,不过不要担心、在Gravatar上传头像后会经过自动压缩,一张几K甚至几十K的图片完全不算流量。
你需要修改模板函数(functions.php),操作方法如下:
1. 在你的网站根目录下新建一个文件夹、名为“avatar”,主题自带缓存功能的人可能就知道(例如大前端主题)
2. 设置该目录(avatar)权限可读写,主要是针对Linux的主机。如果755的没用就设置777(设置递归更改)
3. 在该目录里面(avatar)随便放一张图片、做头像的(建议50*50)然后更名为“default.jpg”,最后加代码:
//Gravatar头像自动本地化 function my_avatar($avatar) { $tmp = strpos($avatar, 'http'); $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp); $tmp = strpos($g, 'avatar/') + 7; $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp); $w = home_url(); // $w = get_bloginfo('url'); $e = preg_replace('/wordpress\//', '', ABSPATH) .'avatar/'. $f .'.jpg'; $t = 604800; //设定7天, 单位:秒,这样就有足够的7天时间了、可以自己更改! if ( empty($default) ) $default = $w. '/avatar/default.jpg'; if ( !is_file($e) || (time() - filemtime($e)) > $t ) //头像不存在或更新时自动更新,时间如上 copy(htmlspecialchars_decode($g), $e); else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg')); if (filesize($e) < 500) copy($default, $e); return $avatar; } add_filter('get_avatar', 'my_avatar');
把上面的代码加到模板函数(functions.php)的最后一个“?>”里面、如果没有“?>”那就直接加到最后面!!
最后的一步就是删除一下缓存、然后看看你网站的头像是不是都到了本地里面!是的话就OK了~
代码扩展:
这一段代码里面写了注释、主要效果已经很明显了,说一下一些函数的值和用法。
$t = 604800;
这一段你可以修改成任意数字、以秒来计算,上面的604800足足有7天,自行更改也可以!
$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
最后面得.jpg可以更改成你喜欢的后缀、但是必须是网页可读的图片格式,例如说.gif、.png等等!
代码里面所有的“avatar/”可以改成你自己喜欢的目录、具体更改方法就是重命名 。。。你懂得。
小结
又开始没有免费主机、主机资讯之类的讯息了,又来发教程了~其实是一位网友叫我发出来的~
目前有26条回应
Comment
Trackback
Loading ....
- 本篇文章没有Trackback
感谢,看了看几天了,一直都是,只要把代码复制进去主题就出错,我找到原因了,今天成功了,本地化了,原来加在?>之前的话,不能有换行。。我一直都是?>单独在最后一行。谢谢了。。。。
嗯嗯,错误自查能力很好哦~
我的也是用的缓存头像
是啊、这样的话对于国内主机简直就是福音~
以前也用过,不过如果有人头像变了,本地缓存更新似乎不够及时
时间可以自己设置,如果不担心自己主机的负载的话、可以设置每秒更新~
恩,有点用,不过这点速度影响不太大吧
嗯嗯、这是的确,但是到时候GFW大发雷霆的时候你就知道这个功能是多么伟大了 。。
学习一下,给自己用上再说! 😎
喔喔~欢迎新访客~这个其实挺简单的~要常来哦~
我的gravatar头像貌似从数据库调用的,用这个代码缓存不了
纳尼、从数据库调用的 。。咋回事?应该都可以的吧。 。数据库调用会很慢的说 。。
@Tomas: 据主题作者讲,数据库调用效率要高
话说请求数据库的次数越多就导致主机负载越大 。。
@Tomas: 改过很多gravatar头像评论代码都不行,一直出错,只好用回原版的了,我一直想缓存头像的
唉、、大不了逼急了就换一个主题呗~
@Tomas: 这个主题花费了太多心血修改~~舍不得换了
把你现在花费了的全部转移到新主题中~
@Tomas: 呵呵,其实我也很喜欢这个主题,舍不得换了
@voncing: 我觉得商业主题更适合建站~
啊呜 表示无奈 还是不行哎
喔喔、代码添加的正确了吗?如果不介意的话可以把你的后台帐密发给我来帮你更改。邮箱就是你收到回复的这个邮箱
哈哈,看到了。谢谢你!!!
不用谢的、这个其实小CASE,好教程要共享~
啊哈哈 我去试试 哈哈 3Q
嗯嗯、这个如果是国内主机的话会大有用处~!