WordPress随机显示本地头像

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

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

cyavatar-01

 

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

添加代码

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

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;
}

其中: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头像到七牛云存储的代码

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 );

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

© 版权声明
THE END
如果喜欢,可以【点赞】【分享】【收藏】
点赞15赞赏 分享
评论 抢沙发
头像
非注册用户需审核通过后才能查看。友好交流,勿发纯表情,勿恶意灌水!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容