如何在Wordpress中使用自定义随机化身?

如何在Wordpress中使用自定义随机化身?,wordpress,avatar,Wordpress,Avatar,我想在我的wordpress网站中使用一些图片中的随机化身。 我们有一些图像,例如20,这些图像具有相同的大小和格式。如何为每个用户设置一张图片(随机) 为了实现这一点,可以修改函数get_avatar()的行为 您可以向avatar_默认选项添加过滤器,并修改“avatars array”,以便在讨论设置中获得新的“静态”默认avatar选项。你可以在这里看到一个例子。 您可以将过滤器添加到pre_选项_avatar_默认值,并返回您想要的任何URL。 我将使用第二个选项,因此返回的URL将从

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


为了实现这一点,可以修改函数get_avatar()的行为

您可以向avatar_默认选项添加过滤器,并修改“avatars array”,以便在讨论设置中获得新的“静态”默认avatar选项。你可以在这里看到一个例子。 您可以将过滤器添加到pre_选项_avatar_默认值,并返回您想要的任何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插件代码段。它有助于组织您的修改并防止更新,您可以轻松启用或禁用它们


此外,有关更多信息,请参阅此链接

假设您有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为null时,它可能是Wordpress文章中管理员的化身
  • 其余的是所有其他用户

将上述代码修改为您自己的路径,然后添加到functions.php或使用类似Snippets的插件。

谢谢,但这种方式在wordpress 4.9.8和4.9.9中不起作用