WordPress 免插件仅代码实现 Gravatar 头像缓存

如果你还不知道是神马东东,请先往《设置你的Gravatar头像的方法》一文了解相关资料。因为我大中华局域网的原因, Gravatar 头像所托管的网站有时候会挂掉,就算不挂速度也很慢。所以,有必要在自己的服务器端来缓存 Gravatar 头像。下面的代码来自于Willin Kan

WordPress免插件仅代码实现Gravatar头像缓存的方法

一、将下面的代码丢入主题的funtions.php文件的最后一个 ?> 前:

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 = get_bloginfo('wpurl'); $e = ABSPATH .'avatar/'. $f .'.jpg'; $t = 1209600; //設定14天, 單位:秒 if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新 copy(htmlspecialchars_decode($g), $e); } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg')); if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e); return $avatar; } add_filter('get_avatar', 'my_avatar');

上面的时间默认是14天,你可以自己修改,注意要化成秒数。

二、在WordPress安装根目(即跟wp-content等文件夹同一目录下)下新建一个名为 avatar 的文件夹 ,设置该文件夹的权限为 0755 (如果 0755 不行,就试一下 0777)。放入一张同尺寸的头像图片命名为default.jpg。

搞定上面的之后,你会发现第一次的时候头像还是Gravatar服务器的地址,但是第二次就会变为httP://你的域名/avatar/xxxxxx.jpg 的形式。xxxx就表示邮箱地址的md5转码地址(具体我也不懂)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Alan's Lab

在 Angular 2 Component 中使用第三方 JS 库

本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言。

1923
来自专栏智能大石头

魔方NewLife.Cube升级v2.0

 魔方是一套集成权限管理的MVC管理后台,最具特色功能是模版覆盖机制,是XCode实体类的最佳搭档! v2.0.2017.1126   借助Ajax支持高级操作...

2229
来自专栏BY的专栏

忽略Xcode8.0中的注释警告⚠️

36810
来自专栏前端布道

Web安全之跨站脚本攻击(XSS)

跨站脚本攻击,英文全称是 Cross Site Script,本来缩写是CSS,但是为了和层叠样式表(Cascading Style Sheet,CSS)有所区...

2682
来自专栏BIT泽清

【iOS 开发】教你利用企业级开发者把你无法上架到App Store的北京赛车app

【iOS 开发】教你利用企业级开发者把你无法上架到App Store的北京赛车app

80510
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(十):后台管理配置

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

3021
来自专栏IMWeb前端团队

Atom编辑器配置

本文作者:IMWeb 黄龙 原文出处:IMWeb社区 未经同意,禁止转载 Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器。具有简洁...

3957
来自专栏前端开发

前端安全问题之-点击劫持

2585
来自专栏FreeBuf

漏洞追踪:最新IE UXSS漏洞技术分析

最近David Leo在Full Disclosure上爆出了一个ie的 uxss 漏洞,可以绕过ie的同源策略。FreeBuf也有相关的报道(点我查看)。本文...

2077
来自专栏happyJared

Python + Selenium 自动发布文章(一):开源中国

  还是说说出这个系列的起因吧。之前写完或是修改了Markdown文章,我还分别需要在多个平台进行发布或是更新维护这些内容,这些平台目前包括我的博客、简书、开源...

1071

扫码关注云+社区

领取腾讯云代金券