本来懒得写,但是有人问起,说网上找的代码不行,所以我就写个简单的教程,网上已有大把教程,都几乎大同小异。本地缓存 Gravatar 头像的方法来自于 Willin Kan(昔日的 WP 大神)。把以下代码粘贴到 wordpress 主题文件根目录下的 functions.php 文件里。
//评论头像缓存在本地服务器 function liao_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 .'.png'; $t = 7*24*60*60; if ( !is_file($e) || (time() - filemtime($e)) > $t ) copy(htmlspecialchars_decode($g), $e); else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.png')); if ( filesize($e) < 200 ) copy(get_bloginfo('template_directory').'/img/default.png', $e); return $avatar; } add_filter('get_avatar', 'liao_avatar');
- 1)在 wordpress 程序根目录下建一个 avatar 文件夹,右键“属性”,给予 777 权限;
- 2)在你使用的 wp 主题文件夹下新建一个 img 文件夹,放一个默认的 default.png 头像图片;
- 3)尽量用 notepad++ 等代码编辑器打开 functions.php。代码贴 functions.php 里面,注意粘贴位置,在文件最后一行 ?> 结束号上面一行粘贴即可。
OK,生效之后,所有 gravatar 头像图片会保存在你 wordpress 根目录下的 avatar 文件夹里并缓存 7 天(7*24*60*60)。
eg:https://www.liaosam.com/avatar/e30c07921e17e382a0561e90f47f3baf.png
本地缓存生效之后,默认情况下头像缓存 7 天,这是我觉得比较合适的时长。你也可以根据需要,更改上面代码中的 $t。比如改成:14*24*60*60,或者直接写数值:1209600。
如果你换了头像,想即刻更新本地缓存的头像图片,那么只要把 $t 改成 $t=60;
,上传 functions.php 覆盖。
等 60 秒刷新之后,就会全部清空本地缓存的 gravatar 头像,重新读取并保存本地。这样你的新头像图片就显示 OK 了。
当刷新 OK 后,记得再次改回 7*24*60*60。
你还可以开启七牛 CDN 存储或者其他第三方云加速服务,把头像缓存到七牛,这样可以减少你的主机的请求量。
不过如果你和我一样用的是 VPS,那么这点压力基本可忽略不计。
本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。
借用宝地,测试头像!哈哈哈
非常感谢。搞定了。
我试着弄了下,未能弄出来,真汗。博主目前使用的是什么方法,能够指点一二呢?不尽感谢!
试试看
可惜 Willin Kan 不玩 WordPress 了,现在的好多东西都是 Willin Kan 开创的。这段代码还是挑主题的,有的主题就不适用,小白的话还是用插件来缓存头像吧,简单
就好比大多数人建英文企业网站选国外 WordPress 主题,会首选 Multi-purpose Themes,因为功能非常强大,适用于各类型网站。有人会说:“不喜欢 Multi-Purpose 的主题。我只是要建一个企业网站,需求比较固定,用不到各类牛逼的功能。虽然强大,但是我不需要,我需要的是 specific purpose 的主题”。问题是,你能淘到几个特别好的 specific purpose 的主题?你有多少精力去逐个找寻并试验适合不适合?好的 specific purpose 适用范围有限,就决定了在网络上传播范围同样有限。当你去找并且试用了一圈以后可能你会说,看来 custimzed theme 才是最好的选择。折腾半天,都是白白浪费时间和精力。
我原来有打算从 WordPress 转到 emlog 去,现在想想也许觉得不合适又会转回 wordpress,所以干脆不折腾了。
@Liaosam 擦!居然打了这么多字!WordPress 是奔着 CMS 去的,单纯只用做 blog 的话的确是有些臃肿,现在的纯静态 blog 程序也是遍地开花,体验都还不错。现在的大环境好多了,搁几年以前大前端的主题敢卖 799?不被人喷死才怪
!收费主题现在也是越来越多了,然而不要脸的人更多!
@Liaosam 收到回复邮件了!最不要脸的是拿收费主题破解了然后再卖钱的!
@Liaosam 居然还有人这么干,真是林子大了。。。
@aunsen Willin Kan 不玩 wp 确实可惜了,以前还有挂着个 typecho,现在连那个都没了。