如何在Wordpress中使用自定义随机头像?

时间:2018-12-13 13:14:15

标签: wordpress avatar

我想从某些图片中在我的wordpress网站中使用随机头像。 我们有一些图片,例如20张,这些图片的尺寸和格式相同。如何为每个用户设置一张图片(随机)。

tnx

2 个答案:

答案 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;
    }
}
  • 当用户 ID 为 1 时,它是管理员 ID。
  • 当用户 ID 为空时,它可能是 Wordpress 文章中的管理员头像。
  • 其余的是所有其他用户。

将上面的代码修改成自己的路径,然后添加到functions.php或者使用Snippets之类的插件。