我想从某些图片中在我的wordpress网站中使用随机头像。 我们有一些图片,例如20张,这些图片的尺寸和格式相同。如何为每个用户设置一张图片(随机)。
tnx
答案 0 :(得分:0)
为了实现这一目标,可以修改函数get_avatar()的行为。
您可以将过滤器添加到avatar_defaults选项,并修改“ avatars数组”,以便在“讨论设置”中获得新的“静态”默认头像选项。您可以在此处查看示例。 您可以将过滤器添加到pre_option_avatar_default,并返回所需的任何URL。 我将使用第二个选项,因此将从集合中随机选取返回的URL。
// Random Chameleon Avatar
add_filter( 'pre_option_avatar_default', 'chameleon_default_avatar' );
function chameleon_default_avatar ( $value )
{
return admin_url( 'images' ) . '/cham_avatars/cham_avatar'.rand( 0 , 13 ).'.jpg';
}
// Random Chameleon Avatar
add_filter( 'pre_option_avatar_default', 'chameleon_default_avatar' );
function chameleon_default_avatar ( $value )
{
return admin_url( 'images' ) . '/cham_avatars/cham_avatar'.rand( 0 , 13 ).'.jpg';
}
这将修改WordPress使用的常规流程,并返回自定义随机化身。我创建了14个头像,将它们命名为cham_avatar0.jpg到cham_avatar13.jpg,并将它们复制到我的wp_admin / images / cham_avatars文件夹中。
问题在于直接修改WordPress的源代码并不理想,因为它将在WP更新中被弄乱。
我建议为此使用WordPress插件代码片段。它有助于使您的修改井井有条,并确保更新不受破坏,并且您可以轻松启用或禁用它们。
另外,请参考此链接以获取更多信息https://ownyourbits.com/2017/01/31/custom-random-avatars-in-wordpress/
答案 1 :(得分:0)
假设您有 20 张个人资料图片供用户使用,例如 1.jpg、2.jpg、3.jpg、...、20.jpg。管理员头像为admin.jpg。
您可以使用 get_avatar_data() 函数。
add_filter('get_avatar_data', 'local_random_avatar', 10, 2);
function local_random_avatar($args, $id_or_email){
if ($id_or_email->user_id == '1') {
// admin id is 1
$args['url'] = 'admin.jpg';
return $args;
} else if ($id_or_email->user_id == null) {
// admin id is null
$args['url'] = 'admin.jpg';
return $args;
} else {
// user avatar
$random = mt_rand(1, 20);
$args['url'] = . $random .'.jpg';
return $args;
}
}
将上面的代码修改成自己的路径,然后添加到functions.php或者使用Snippets之类的插件。