IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    WordPress随机显示本地头像

    知更鸟发表于 2017-05-18 10:23:59
    love 0

    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 ( ! emptyempty( $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头像到七牛云存储的代码

    展示代码展开

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



沪ICP备19023445号-2号
友情链接