Gravatar头像加载缓慢的问题,一直困扰着我们,启用头像本地缓存或者缓存到类似七牛云上可能是唯一可行的办法。
还有一个让人郁闷的是,很多评论留言者并没有申请Gravatar头像,只能显示WordPress自带的古怪头像,看着很不爽。
下面分享一段随机显示本地评论头像的代码,预先准备一些漂亮的图片代替WordPress自带的头像。
添加代码
将下面代码添加到当前主题[code]functions.php[/code]中:
- add_filter( 'get_avatar' , 'local_random_avatar' , 1 , 5 );
- function local_random_avatar( $avatar, $id_or_email, $size, $default, $alt) {
- if ( ! empty( $id_or_email->user_id ) ) {
- $avatar = ''.get_template_directory_uri().'/avatar/admin.jpg';
- }else{
- $random = mt_rand(1, 10);
- $avatar = ''.get_template_directory_uri().'/avatar/'. $random .'.jpg';
- }
- $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
- return $avatar;
- }
其中:[code]mt_rand(1, 10);[/code]数字为随机图片张数可以自行修改。
准备头像图片
在当前主题目录中新建一个名称为avatar的文件夹,里面放10张名称连续的jpg图片,比如1.jpg、2.jpg、3.jpg.........,和一张用于管理员的图片,名称为admin.jpg
添加上述代码后,只有管理员是显示固定的图片,其他留言者都是随机显示预先准备的头像图片,包括注册用户。
可以安装本地上传头像插件:Simple Local Avatars,让注册用户在后台上传头像,从而显示自己固定的头像。
可能有童鞋会问,已申请Gravatar头像的留言者,是否能显示正常的Gravatar头像,理论上是可以通过判断实现的,不过这就需要到Gravatar头像站点去检测,会严重拖慢速度,得不偿失。
还可以试试,用留言者名称第一个字母为头像的插件:WP First Letter Avatar
另附,一段缓存Gravatar头像到七牛云存储的代码
- function qiniu_avatar($avatar) {
- $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/','<img src="http://你的缓存域名/avatar/$1-$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
- return $avatar;
- }
- add_filter( 'get_avatar', 'qiniu_avatar', 10, 3 );
如果你使用了七牛云存储,可以将上面的代码添加当前主题[code]functions.php[/code]中,可将Gravatar头像缓存到七牛,具体如何实现,不是本文的重点,可自行网上搜索相关文章。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

1F
这个想法不错啊
B1
@ 飯特稀 嗯,确实不错啊!
B1
@ 飯特稀 JSDKG果
2F
不错哦,
3F
沙发
4F
好办法,谢鸟哥了,我拿去用了
5F
不错,有点意思啊。。
6F
之前就是用的随机头像,注册用户显示自行设定的头像,对于有gravatar头像的访客显示相应的gravatar头像,对于没有gravatar头像的访客显示随机头像(现在改为了显示访客首字母)~~
7F
同一个评论者也是随机显示同头像,如果同一个评论者能固定随机的一个头像就完美了
8F
技术流,没精力折腾WP了
9F
其实我早就想实现这个功能了,只是不知道怎么搞,感谢鸟哥,真是心有灵犀一点通啊。
10F
喜欢知更鸟
11F
功能不错。。。
12F
WP First Letter Avatar插件还是不错的,有gravatar头像就显示,没有就显示字母头像,这样感觉比较给力
B1
@ boke112导航 额 你那边使用的是插件么 我还以为是代码的
13F
不错,这个很适合传统行业的博客使用的!
14F
鸟哥的 WP First Letter Avatar 不支持中文昵称,这里有个修改版的
https://www.thsang.com/394.html
15F
那鸟哥,你下面的留言还有好多都是默认的头像
B1
@ 墨丶水瓶 我自己目前并没有使用本文功能
16F
知更鸟给中国的wp粉丝贡献了好多知识,从2010年开始一直关注你的博客,每次过来都会学习到很多东西,谢谢鸟叔
17F
123414bgv考
18F
1222144444453634李晓琳
19F
酸楚dss
20F
这个方法好像不支持https啊
21F
牛逼了,自带头像是真的难看
22F
可以固定头像吗,游客留言的
23F
学习了
24F
感谢
25F
纠结呀
26F
怎么让已经在用户中心有头像的固定,没有头像的随机呢?鸟哥
27F
不知道是怎么回事,我使用上面的代码并没有生效。虽然使用的是国内主机访问很快,但gravatar头像还是一个拖速度的硬伤。
B1
@ 墨铺 想解决头像慢的问题,看看我博客首页置顶的文章