WordPress评论随机本地头像

发布于 2022-12-24  84 次阅读


博客留言头像只能使用默认头像,况且某个接口还是被墙了的,拖累网站速度。使用头像插件,只能使用一个特定的头像来给未注册的用户显示头像,过于单调。

最好的方法是随机显示留言头像,现在来动手实现吧!

你需要准备若干个 100px*100px的头像依次命名为 1.jpg/2.jpg……

像素过高的头像会严重拖慢加载速度,不过 100px*100px是一个建议值,你可以自行判断。

我们现在准备好了 25个头像 ,依次为 1.jpg/2.jpg……25.jpg。

我们需要先在当前主题的目录下新建文件夹,命名为 avatar(请随意,不过后面代码记得进行相应更改)。

例如我的主题是 Sakurairo-2.5.2,域名是 rain.moe,

那么你需要在/www/wwwroot/rain.moe/wp-content/themes/Sakurairo-2.5.2/avatar/下。

上传你的图片到 avatar文件夹,通常来说文件名应当是连续的。

请注意文件拓展名!JPG/PNG/GIF/BMP最好不要混用!

现在有两条路,如果你的主题不在维护/不需要更新了,你可以把代码粘贴到当前主题的 functions.php。

add_filter('get_avatar_data', 'local_random_avatar', 10, 2);
function local_random_avatar($args, $id_or_email){
    $random = mt_rand(1, 25);//文件名1-25
    $args['url'] = '/wp-content/themes/Sakurairo-2.5.2/avatar/'. $random .'.jpg';
    return $args;//图片为jpg格式
	}

如果你需要经常更新/更换主题,则需要下载一个插件

在启用插件后,点击 Snippets-Add New。粘贴以下代码。

add_filter('get_avatar_data', 'local_random_avatar', 10, 2);
function local_random_avatar($args, $id_or_email){
    $random = mt_rand(1, 25);
    $args['url'] = '/wp-content/avatar/'. $random .'.jpg';
    return $args;}

建议选择 Run snippet everywhere仅在站点前端运行。Only run on site front-end仅在站点前端运行也是可以的。区别在于前者会随机所有的头像,后者只会随机前端头像,后台头像依然是默认的。

同时建议随机头像数大于20个,否则有可能评论区头像会出现重复,影响观感。