web-dev-qa-db-ja.com

設定 - >一般 - >新しいユーザーの既定のロールで管理者ロールを削除するにはどうすればいいですか?

誤って管理者ロールを選択したくありません。

それでSettings -> General -> New User Default Roleからそれを削除する方法はありますか?

4
Giri

さて、これはトリッキーに見えますが、私はそれが可能だと思います。

  1. user-new.php ファイルは、ロールのリストを出力するためにwp_dropdown_roles()を呼び出します。
  2. wp_dropdown_roles() 関数は、出力するロールのリストを取得するためにget_editable_roles()を呼び出します。
  3. get_editable_roles() 関数はフィルタeditable_rolesを持っています。

そのため、現在のページがeditable_rolesである場合はuser-new.phpからadministratorを設定解除するように、$editable_roles用のフィルタを追加できるはずです。

編集する

私のfunctions.phpファイルのコードを教えてもらえれば最高です。

これはまったくテストされていませんが、正しい方向へあなたを導いてくれるはずです。私は仮定 _ $editable_rolesはユーザーロールの配列です。 array( 'subscriber', 'author', 'editor', 'administrator' )、しかし私は確認していません。

<?php
function wpse_40897_filter_get_editable_roles_for_new_user( $editable_roles ) {
    global $pagenow;
    if ( 'user-new.php' == $pagenow ) {
        unset( $editable_roles['administrator'] );
    }
    return $editable_roles;

}
add_filter( 'editable_roles', 'wpse_40897_filter_get_editable_roles_for_new_user' );
?>

警告:これはターンキーコードではなく、単にコードです。必要な場所に移動するのに慣れていない場合は、コピーパスタに使用することはお勧めしません。

4
Chip Bennett