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
Est-il possible de renommer un nom de rôle d'utilisateur via un hook, au lieu d'utiliser un plugin?
Par exemple, administrator
»owner
Réponses:
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');
http://www.garyc40.com/2010/04/ultimate-guide-to-roles-and-capabilities/
$wp_roles
ait maintenant une [role_objects]
partie de son tableau.
Une solution simple serait d'ajouter simplement un rôle d'utilisateur à l'aide de add_role
cette façon, vous pouvez le nommer comme vous le souhaitez et ajouter les capacités que vous souhaitez.
http://codex.wordpress.org/Function_Reference/add_role
En fait, il existe de nombreuses façons d'y parvenir:
Avec pur php 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 une wp_options
table.
Alors:
SELECT option_value as serialized_string FROM wp_options WHERE option_name = 'wp_user_roles';
$rolesArray = unserialize($serialized_string)
$rolesArray['role_key']['name'] = "New name"
echo serialize($rolesArray)
option_value
contenu de la base de données par la sortie du point précédentSi vous vous sentez en confiance avec 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 utiliser update_option
pour la mettre à jour.
Et (toujours) n'oubliez pas de sauvegarder la base de données avant la manipulation des options;)
… Il est très facile d'y parvenir avec wp-cli :
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
Vous pouvez créer un fichier de localisation personnalisé. Obtenez ce fichier: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot et modifiez-le à l'aide de l'outil PoEdit (par exemple). À l'étape suivante, enregistrez le fichier de localisation en en_GB.mo (ou autre) et modifiez le fichier wp-config:
define ("WPLANG", "en_GB");