WordPress随机显示本地头像

知更鸟
知更鸟
知更鸟
1500
文章
6904
评论
2017年5月18日18:23:59 30 2.9K
WordPress随机显示本地头像

随机显示本地头像

Gravatar头像加载缓慢的问题,一直困扰着我们,启用头像本地缓存或者缓存到类似七牛云上可能是唯一可行的办法。

还有一个让人郁闷的是,很多评论留言者并没有申请Gravatar头像,只能显示WordPress自带的古怪头像,看着很不爽。

下面分享一段随机显示本地评论头像的代码,预先准备一些漂亮的图片代替WordPress自带的头像。

添加代码

将下面代码添加到当前主题functions.php中:

  1. add_filter( 'get_avatar' , 'local_random_avatar' , 1 , 5 );
  2. function local_random_avatar( $avatar$id_or_email$size$default$alt) {
  3.     if ( ! empty$id_or_email->user_id ) ) {
  4.         $avatar = ''.get_template_directory_uri().'/avatar/admin.jpg';
  5.     }else{
  6.         $random = mt_rand(1, 10);
  7.         $avatar = ''.get_template_directory_uri().'/avatar/'. $random .'.jpg';
  8.     }
  9.     $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
  10.     return $avatar;
  11. }

其中:mt_rand(1, 10);数字为随机图片张数可以自行修改。

准备头像图片

在当前主题目录中新建一个名称为avatar的文件夹,里面放10张名称连续的jpg图片,比如1.jpg、2.jpg、3.jpg.........,和一张用于管理员的图片,名称为admin.jpg

添加上述代码后,只有管理员是显示固定的图片,其他留言者都是随机显示预先准备的头像图片,包括注册用户。

可以安装本地上传头像插件:Simple Local Avatars,让注册用户在后台上传头像,从而显示自己固定的头像。

可能有童鞋会问,已申请Gravatar头像的留言者,是否能显示正常的Gravatar头像,理论上是可以通过判断实现的,不过这就需要到Gravatar头像站点去检测,会严重拖慢速度,得不偿失。

还可以试试,用留言者名称第一个字母为头像的插件:WP First Letter Avatar

 

另附,一段缓存Gravatar头像到七牛云存储的代码

  1. function qiniu_avatar($avatar) {
  2.   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/','<img src="http://你的缓存域名/avatar/$1-$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  3.   return $avatar;
  4. }
  5. add_filter( 'get_avatar', 'qiniu_avatar', 10, 3 );

如果你使用了七牛云存储,可以将上面的代码添加当前主题functions.php中,可将Gravatar头像缓存到七牛,具体如何实现,不是本文的重点,可自行网上搜索相关文章。

继续阅读
weinxin
关于本站
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
修正 WordPress 密码设置链接错误 WordPress

修正 WordPress 密码设置链接错误

当用户注册或者忘记密码获取新密码时WordPress会自动向用户邮箱中发送一个验证链接地址,用户通过打开这个链接设置密码,不过经常发现这个链接直接打开后,并不是设置密码的正确链接。 修正 WordPr...
用字母替代图片脚本:LetterAvatar Plugins

用字母替代图片脚本:LetterAvatar

基于canvas,通过toDataURL动态生成base64图片。目前我主题的Gravatar头像,就是利用这个LetterAvatar脚本实现未设置Gravatar头像则读取ALT标签,自动生成首字...
批量替换WordPress自定义栏目值 WordPress

批量替换WordPress自定义栏目值

如果之前添加的自定义栏目值,比如附件或者图片链接地址变了,可以通过以下方法批量修改一下。 将下面代码添加到当前主题函数模板 functions.php 最后: global $wpdb; $wpdb-...
WordPress 主题添加花瓣飘落特效 WordPress

WordPress 主题添加花瓣飘落特效

上篇文章过年啦,挂灯笼!教大家在博客上挂个动画灯笼,可能大家认为很好玩,那就再分享一个花瓣飘落的特效,可以加到自己博客上再装点一下节日氛围。 点击下图查看动画效果 先贴一下代码,下面有打包的文件下载。...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:30   其中:访客  29   博主  1
    • 飯特稀 飯特稀 1

      这个想法不错啊

      • 励志语录 励志语录 6

        不错哦, :mrgreen:

        • 励志语录 励志语录 6

          沙发

          • aunsen aunsen 4

            好办法,谢鸟哥了,我拿去用了

            • SmallTown SmallTown 2

              不错,有点意思啊。。

              • 龙笑天 龙笑天 4

                之前就是用的随机头像,注册用户显示自行设定的头像,对于有gravatar头像的访客显示相应的gravatar头像,对于没有gravatar头像的访客显示随机头像(现在改为了显示访客首字母)~~ :grin:

                • Oeasy Oeasy 3

                  同一个评论者也是随机显示同头像,如果同一个评论者能固定随机的一个头像就完美了

                  • 出售转让本博客 出售转让本博客 3

                    技术流,没精力折腾WP了

                    • Win7en乐园 Win7en乐园 7

                      其实我早就想实现这个功能了,只是不知道怎么搞,感谢鸟哥,真是心有灵犀一点通啊。

                      • 盘古科技 盘古科技 0

                        喜欢知更鸟

                        • 响应式主题 YUAO 发布 响应式主题 YUAO 发布 3

                          功能不错。。。

                          • boke112导航 boke112导航 4

                            WP First Letter Avatar插件还是不错的,有gravatar头像就显示,没有就显示字母头像,这样感觉比较给力

                            • 吃货小栈 吃货小栈 0

                              不错,这个很适合传统行业的博客使用的!

                              • SmallTown SmallTown 2

                                鸟哥的 WP First Letter Avatar 不支持中文昵称,这里有个修改版的
                                https://www.thsang.com/394.html

                                • 墨丶水瓶 墨丶水瓶 4

                                  那鸟哥,你下面的留言还有好多都是默认的头像 :???:

                                  • 邻水房产网 邻水房产网 0

                                    知更鸟给中国的wp粉丝贡献了好多知识,从2010年开始一直关注你的博客,每次过来都会学习到很多东西,谢谢鸟叔

                                    • hguhygyugugu hguhygyugugu 2

                                      123414bgv考

                                      • hguhygyugugu hguhygyugugu 2

                                        1222144444453634李晓琳

                                        • hguhygyugugu hguhygyugugu 2

                                          酸楚dss

                                          • hguhygyugugu hguhygyugugu 2

                                            sdfsgsSsffs末

                                            • 梦想易家 梦想易家 1

                                              这个方法好像不支持https啊

                                              • 南玄 南玄 4

                                                牛逼了,自带头像是真的难看

                                                • 肝火 肝火 0

                                                  可以固定头像吗,游客留言的

                                                  • 荃盾 荃盾 1

                                                    学习了

                                                    • 荃盾 荃盾 1

                                                      感谢

                                                      • 挂板人 挂板人 0

                                                        纠结呀