Esiste un modo per rinominare il nome di un ruolo utente tramite hook, anziché utilizzare il plugin?
modificare
Ad esempio, administrator
»owner
Esiste un modo per rinominare il nome di un ruolo utente tramite hook, anziché utilizzare il plugin?
Ad esempio, administrator
»owner
Risposte:
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
ora abbia una [role_objects]
parte del suo array.
Una soluzione semplice sarebbe quella di aggiungere semplicemente un ruolo utente usando add_role
, in questo modo puoi nominarlo come vuoi e aggiungere qualunque capacità tu voglia.
http://codex.wordpress.org/Function_Reference/add_role
In realtà, ci sono molti modi per ottenerlo:
Con pure php e mysql è possibile modificare la voce serializzata nel db. Infatti, Wordpress memorizza la matrice serializzata di ruoli nella wp_options
tabella.
Così:
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
contenuto del db con l'output del punto precedenteSe ti senti sicuro con Wordpress, puoi persino usare il REPL di Wordpress incorporato in wp-cli per recuperare il valore memorizzato get_option('wp_user_roles')
e quindi usarlo update_option
per aggiornarlo.
E (sempre) ricordati di eseguire il backup del db prima della manipolazione delle opzioni;)
... è molto facile raggiungerlo con wp-cli :
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
È possibile creare un file di localizzazione personalizzato. Ottieni questo file: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot e modifica utilizzando lo strumento PoEdit (ad esempio). Nel passaggio successivo salva il file di localizzazione come en_GB.mo (o altro) e modifica il file wp-config:
define ("WPLANG", "en_GB");