web-dev-qa-db-ja.com

新しいユーザーにプログラムでデフォルトの役割を設定する方法を教えてください。

購読者ではなく、ブログの新規ユーザーにカスタムロールを割り当ててもらいたいです。これをプログラムで設定する方法バックエンドから変更できることを私は知っています。

8
jayarjo

これにより、プラグインはアクティブな間にデフォルトの役割を簡単にハイジャックすることができます。

// Hijack the option, the role will follow!
add_filter('pre_option_default_role', function($default_role){
    // You can also add conditional tags here and return whatever
    return 'subscriber'; // This is changed
    return $default_role; // This allows default
});

私は、管理者が変更しようとしたにもかかわらず、加入者ロールを必要とするいくつかのプラグインが確実にそれを取得できるようにするためにそれを使用します。

よろしく

11
EarnestoDev

wp_insert_user() 関数を使用して新しいユーザーを作成すると、その役割はUserクラスのset_role()メソッドで設定され、デフォルトのユーザー役割に設定されます。

デフォルトのユーザロールはデータベースget_option('default_role')から取得され、[設定]> [一般]> [新しいユーザのデフォルトロール]に移動して管理ダッシュボードから設定できます。

新しい役割を登録した場合は( add_role() を使用して)、そこから選択できるようになります。

あるいは、より細かく制御するために、user_registerまたはprofile_updateアクションにフックして、条件付きでset_roleアクションを実行することもできます。

7
soulseekah

を使用してユーザーを作成した後

$user_id = wp_create_user( $user_login, $pas1, $user_email );

ユーザーオブジェクトを作成する

$user = new WP_User($user_id);

次に役割を設定します

$user->set_role('editor');

'editor'の役割を次のいずれかに置き換えることができます。

  • 管理者

  • 編集者

  • 著者

  • 寄稿者

  • 加入者

2

テーマのPlugingまたはfunctions.phpに入れます

//Make 'Client' a default role

update_option('default_role','client');
1
user80490