1

次のような管理者を追加できます。

$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' =>'super user'、'super_user'、'superuser'、...を試しましたが、何も機能しません。

4

4 に答える 4

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 );
于 2014-02-22T17:26:56.810 に答える
1

私はWordPressコードをざっと見てみましたが、あなたが探しているオプションは実際には「site_admin」だと思います

于 2012-05-15T10:03:06.440 に答える
1

そのような役割はありません。

スーパー管理者は、関数で確認できるようにサイトオプションとして保存されますget_super_admins。そのis_super_admin中で、ユーザーのログインが前の関数によって返された配列にあるかどうかがチェックされます。

通常、これはログイン名adminのユーザーのみです。あなたがする必要があるのは

$admins = get_super_admins();
$admins[] = 'your_user_login@example.com';
update_site_option('site_admins', $admins);
于 2012-05-15T10:15:28.937 に答える
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)Alexが言ったように、site_adminsに追加します。

$admins = get_super_admins();
if (!in_array($email, $admins))
{
    $admins[] = $email;
    update_site_option('site_admins', $admins);
}
于 2012-05-30T07:12:52.030 に答える