下载帮

您现在的位置是:首页 > CMS教程 > WordPress

WordPress

WordPress随机显示本地头像的实现方法

2020-04-18 07:37WordPress

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

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

下面分享一段随机显示本地评论头像的代码,预先准备一些漂亮的图片代替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);数字为随机图片张数可以自行修改。

点击下载:准备头像图片(解压密码:yudouyudou)

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

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

另附,一段缓存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头像缓存到七牛,具体如何实现,不是本文的重点,可自行网上搜索相关文章。

文章评论