Est-il possible de renommer le nom du rôle d'utilisateur sans plug-in?

20

Est-il possible de renommer un nom de rôle d'utilisateur via un hook au lieu d'utiliser un plugin?

Modifier

Par exemple, administrator » owner

    
posée Sean Lee 15.07.2011 - 09:53

5 réponses

40
function change_role_name() {
    global $wp_roles;

    if ( ! isset( $wp_roles ) )
        $wp_roles = new WP_Roles();

    //You can list all currently available roles like this...
    //$roles = $wp_roles->get_names();
    //print_r($roles);

    //You can replace "administrator" with any other role "editor", "author", "contributor" or "subscriber"...
    $wp_roles->roles['administrator']['name'] = 'Owner';
    $wp_roles->role_names['administrator'] = 'Owner';           
}
add_action('init', 'change_role_name');

enlace

    
réponse donnée Ján Bočínec 02.09.2011 - 08:31
2

Une solution simple consisterait simplement à ajouter un rôle d'utilisateur à l'aide de add_role . Vous pourrez ainsi le nommer comme vous le souhaitez et ajouter les fonctionnalités de votre choix. enlace

    
réponse donnée Wyck 15.07.2011 - 23:04
2

En fait, il existe de nombreuses façons de réaliser cela:

Avec php pur et mysql , vous pouvez modifier l'entrée sérialisée dans la base de données. En effet, Wordpress stocke le tableau sérialisé de rôles dans la table wp_options .

Donc:

  1. Récupérez le tableau sérialisé:
    SELECT option_value as serialized_string FROM wp_options WHERE option_name = 'wp_user_roles';
  2. Désérialisez la chaîne - php: $rolesArray = unserialize($serialized_string)
  3. Changer le nom du rôle - php: $rolesArray['role_key']['name'] = "New name"
  4. Sérialiser le tableau - php: echo serialize($rolesArray)
  5. Remplacez le contenu de la base de données option_value par la sortie du point précédent

Si vous avez confiance en Wordpress, vous pouvez même utiliser le Wordpress REPL intégré dans wp-cli pour récupérer la valeur stockée avec get_option('wp_user_roles') , puis utilisez update_option pour le mettre à jour.

Et n'oubliez pas de toujours sauvegarder la base de données avant la manipulation des options;)

Sinon, si vous ne vous souciez pas de la valeur de role_key…

… il est très facile d'y parvenir avec wp-cli :

  1. dupliquez le rôle existant - $ wp role create new_role 'New Role' --clone=old_role
  2. supprimer l'ancien - $ wp role delete old_role
  3. associez ensuite new_role au (x) utilisateur (s).
  4. répétez éventuellement les étapes 1 et 2 jusqu'à ce que old_role = new_role
réponse donnée Dharma 15.09.2016 - 15:01
1

Vous pouvez créer un fichier de localisation personnalisé. Obtenez ce fichier: enlace et modifiez-le à l'aide de l'outil PoEdit (par exemple). A l’étape suivante, sauvegardez le fichier de localisation sous le nom en_GB.mo (ou autre) et éditez le fichier wp-config:

define ("WPLANG", "en_GB");

    
réponse donnée czepol 15.07.2011 - 22:41
0

Vous pouvez le modifier directement dans votre base de données. Il sera édité de manière permanente pour votre site Web. Voici où WP conserve les rôles d’utilisateur

SELECT * from blog_options WHERE option_name = 'blog_user_roles'
    
réponse donnée artnikpro 13.08.2015 - 19:58

Lire d'autres questions sur les étiquettes