web-dev-qa-db-fra.com

Comment supprimer le rôle d'administrateur dans les paramètres -> général -> Nouveau rôle par défaut de l'utilisateur?

Je ne veux pas sélectionner accidentellement le rôle d'administrateur.

Alors, y a-t-il un moyen de le supprimer de Settings -> General -> New User Default Role?

4
Giri

Ok, ça a l'air délicat, mais je pense que c'est possible.

  1. Le fichier user-new.php appelle wp_dropdown_roles() pour générer la liste des rôles.
  2. La fonction wp_dropdown_roles() appelle get_editable_roles() pour obtenir la liste des rôles à afficher.
  3. La fonction get_editable_roles() a un filtre, editable_roles.

Ainsi, vous devriez pouvoir ajouter un filtre pour editable_roles, de telle sorte que, si la page en cours est user-new.php, vous désactivez la variable administrator de $editable_roles.

Modifier

Ce serait génial si vous pouviez me donner le code de mon fichier functions.php.

Ceci est complètement non testé, mais devrait vous mettre dans la bonne direction. Je suis en supposant que $editable_roles est un tableau de rôles d'utilisateur, par exemple. array( 'subscriber', 'author', 'editor', 'administrator' ), mais je n'ai pas vérifié.

<?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' );
?>

Caveat : Ce n'est pas du code clé en main, mais plutôt du code exemple. Si vous ne vous sentez pas à l'aise pour le faire là où vous en avez besoin, je ne vous recommanderais pas de l'utiliser pour copier des pâtes.

4
Chip Bennett