本来懒得写,但是有人问起,说网上找的代码不行,所以我就写个简单的教程,网上已有大把教程,都几乎大同小异。本地缓存 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,那么这点压力基本可忽略不计。
本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。
料网 - 外贸老鸟之路

借用宝地,测试头像!哈哈哈
id="comment-35158" data="">
非常感谢。搞定了。

Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7 @夏天烤洋芋 不客气兄台!
7年前 (2019-04-05)安徽
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46id="comment-35159" data="">
id="comment-28927" data="">
id="comment-26843" data="">
试试看
id="comment-26760" data="">
可惜 Willin Kan 不玩 WordPress 了,现在的好多东西都是 Willin Kan 开创的。这段代码还是挑主题的,有的主题就不适用,小白的话还是用插件来缓存头像吧,简单
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7 @aunsen 是的,他是元老级的人物了。退出也是因为 WordPress 无可救药的臃肿,可能他那样的人比较追求极致吧。不过我还是比较喜欢 WordPress 的。
11年前 (2015-12-16)美国

不亦乐乎Chrome · Windows 10 10年前 (2016-03-01)福建
id="comment-26761" data="">
就好比大多数人建英文企业网站选国外 WordPress 主题,会首选 Multi-purpose Themes,因为功能非常强大,适用于各类型网站。有人会说:“不喜欢 Multi-Purpose 的主题。我只是要建一个企业网站,需求比较固定,用不到各类牛逼的功能。虽然强大,但是我不需要,我需要的是 specific purpose 的主题”。问题是,你能淘到几个特别好的 specific purpose 的主题?你有多少精力去逐个找寻并试验适合不适合?好的 specific purpose 适用范围有限,就决定了在网络上传播范围同样有限。当你去找并且试用了一圈以后可能你会说,看来 custimzed theme 才是最好的选择。折腾半天,都是白白浪费时间和精力。
我原来有打算从 WordPress 转到 emlog 去,现在想想也许觉得不合适又会转回 wordpress,所以干脆不折腾了。
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
aunsenFirefox · Windows 10 11年前 (2015-12-16)陕西
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46id="comment-26764" data="">
@Liaosam 擦!居然打了这么多字!WordPress 是奔着 CMS 去的,单纯只用做 blog 的话的确是有些臃肿,现在的纯静态 blog 程序也是遍地开花,体验都还不错。现在的大环境好多了,搁几年以前大前端的主题敢卖 799?不被人喷死才怪
!收费主题现在也是越来越多了,然而不要脸的人更多!
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7 @aunsen 哈哈,是啊。我现在就是作为 CMS 在用,单纯做 blog 感觉 emlog / typecho 更好些。我对中文主题没太大的兴趣,折腾英文主题比较多 :lol:,基本接触不到那些不要脸的。我只知道某人搞 xx 大学,但 RP 不太好,名声臭了。
11年前 (2015-12-16)美国
id="comment-26765" data="">
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
aunsenFirefox · Windows 10 11年前 (2015-12-16)陕西
id="comment-26766" data="">
@Liaosam 收到回复邮件了!最不要脸的是拿收费主题破解了然后再卖钱的!
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7 @aunsen 这种还算好的。之前还在欲思的 WP 群里看到有人吐槽那些破解了 DUX 主题拿来卖钱,有不少人买源码但付钱后直接被拉黑。
11年前 (2015-12-16)美国
id="comment-26768" data="">
Notice: Undefined variable: page in /home/wwwroot/www.liaosam.com/wp-content/themes/liaosam/modules/mo_comments_list.php on line 46
aunsenFirefox · Windows 10 11年前 (2015-12-16)陕西
id="comment-26769" data="">
@Liaosam 居然还有人这么干,真是林子大了。。。
id="comment-27241" data="">
@aunsen Willin Kan 不玩 wp 确实可惜了,以前还有挂着个 typecho,现在连那个都没了。