我可以添加这样的管理员:
$password = wp_generate_password();
$userData = array(
'user_pass' => $password,
'user_login' => $email,
'user_nicename' => sanitize_title($name),
'user_email' => $email,
'display_name' => $name,
'role' => 'administrator'
);
$user_id = wp_insert_user($userData);
工作正常,但如何添加超级用户?角色名称是什么?
我试过'role'=> “超级用户”,“超级用户”,“超级用户”,......但没有任何作用。
答案 0 :(得分:2)
其他答案基本上是正确的,但最好尽可能使用WordPress中的内置函数。您正在寻找的功能是grant_super_admin()
。
根据您的示例代码:
$password = wp_generate_password();
$userData = array(
'user_pass' => $password,
'user_login' => $email,
'user_nicename' => sanitize_title($name),
'user_email' => $email,
'display_name' => $name,
'role' => 'administrator'
);
$user_id = wp_insert_user($userData);
// Make the user a super admin.
grant_super_admin( $user_id );
答案 1 :(得分:1)
我快速浏览一下WordPress代码,我相信您正在寻找的选项实际上是“site_admin”
答案 2 :(得分:1)
没有这样的角色。
超级管理员存储为网站选项,您可以在函数get_super_admins
中看到。
在is_super_admin
中,检查用户的登录是否在前一个函数返回的数组中。
通常这只是登录名为admin的用户。你需要做的是
$admins = get_super_admins();
$admins[] = 'your_user_login@example.com';
update_site_option('site_admins', $admins);
答案 3 :(得分:0)
这看起来有效:
1)将用户角色设置为“site_admin”
2)添加用户作为每个博客的管理员
$blogs = get_blog_list(0, 'all');
foreach ($blogs as $blog)
{
add_user_to_blog($blog['blog_id'], $user_id, 'administrator');
}
3)As Alex said,添加到site_admins:
$admins = get_super_admins();
if (!in_array($email, $admins))
{
$admins[] = $email;
update_site_option('site_admins', $admins);
}