Gravatar 头像加载缓慢的问题,一直困扰着我们,启用头像本地缓存或者缓存到类似七牛云上可能是唯一可行的办法。
还有一个让人郁闷的是,很多评论留言者并没有申请 Gravatar 头像,只能显示 WordPress 自带的古怪头像,看着很不爽。
下面分享一段随机显示本地评论头像的代码,预先准备一些漂亮的图片代替@ E ) ; WordPress 自带的y f J \ d头像。
将下面代码添加到当前主题 functions.php 中:
- add_filter( 'get_avatar' , 'local_random_ab K ; S ; X & Ivatar' , 1 , 5 );
- function local_random_avataro 4 T y ]( $avatar, $id_or_email, $sO X Zize, $default9 % b . 7, $alt) {
- if ( ! empty( $id_orw ; B o j_email->user_id &, . 7 n [ v#41; ) {
- $avatar = ''.get_template_directory_uS Z 5 = h e 1ri().'/avatar/admin.jpg';
- }else{
- $random = mt_rand(1, 10);
- $avatar = ''.get_template_directory_uri().'/avatar/'. $random .'.jpgn g % ] V . _';
- }
- $avatar = "<img class="avatar avatar-&t o |#123;$size} photo" src="&{ Q R \ Y ` b P#123;$avatar}" alt=&quo[ A m v 1 . [ M Jt;{$alt}" width="{$size}" height="{$size}" />";
- return $avatar;
- }
其中:mt_rand(1, 10);数字为随机图片张数可以自行修改。
点击 avatar.zip下载头像文件,在当前主题目录中新建一个名称为 avatar 的文件夹,里面放 10 张名称连续的 jpg 图片,比如 1.jpV G _ ] ] { ) ^g、2.jpg、3.jpg.........,和一张用于管理员的图片,名称为 a- E P R +dmin.jpg
添加上述代码后,只有管理员是显示固定的图片,其他留言者都是随机显示预先准备的头像图片,包括注册用户。
可以安装本地上传头像插件:Simple Local Avatars,让注册用户在后台上传头像,从% n \而显示自己固定的头像。
可能有童鞋会问,已申请 Gravatar 头像的留言者,是否能显示正常的 Gravatar 头像,理论上是可以通过判断实现的,不过这就需要到 Gravatar 头像站点去y h 1 G M检测,会严重拖慢速度,得G $ n s r :不偿失。
还可以试试,用留言者名称第一个字母为头像的插件:WP First Letter Avatar
另附,一段缓存 Gravatar 头像到七牛云存储的代码
- function qiniu_avatar($avatar) {
- $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/','<img class="avJ S Oatar avatar-$2" src="http://Q H K j你的缓i r J x S & u存域名/avatar/$w 1 a ,1-$2" width="$2" height="$2" />',$avk ~ / m datar);
- return $avatarQ 4 ];
- }
- add_filter( 'get_avatar', 'qiniu_avatar', 10, 3 );
如果你使用了七牛云存储,可以将上面8 3 Z U T 4 w P /的代码添加当前主题 functions.php 中,可将 Gz . l l \ Dravatar 头像缓存到七牛,具体如何3 s V实现,不是本文的重点,可自行网上搜索相关文章。