Gibt es eine Möglichkeit, einen Benutzerrollennamen über einen Hook umzubenennen, anstatt das Plugin zu verwenden?
Bearbeiten
Zum Beispiel administrator
»owner
Gibt es eine Möglichkeit, einen Benutzerrollennamen über einen Hook umzubenennen, anstatt das Plugin zu verwenden?
Zum Beispiel administrator
»owner
Antworten:
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
jetzt einen [role_objects]
Teil seines Arrays.
Eine einfache Lösung wäre, einfach eine Benutzerrolle mit hinzuzufügen. Auf add_role
diese Weise können Sie sie beliebig benennen und die gewünschten Funktionen hinzufügen.
http://codex.wordpress.org/Function_Reference/add_role
Tatsächlich gibt es viele Möglichkeiten, dies zu erreichen:
Mit reinem PHP und MySQL können Sie den serialisierten Eintrag in der Datenbank bearbeiten. In der Tat speichert Wordpress das serialisierte Array von Rollen in einer wp_options
Tabelle.
So:
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
Inhalt durch die Ausgabe vom vorherigen PunktWenn Sie mit Wordpress vertraut sind, können Sie sogar die eingebettete Wordpress-REPL in wp-cli verwenden , um den gespeicherten Wert mit abzurufen get_option('wp_user_roles')
und ihn dann update_option
zu aktualisieren.
Und (immer) daran denken, die Datenbank vor der Optionsmanipulation zu sichern;)
… Mit wp-cli ist das ganz einfach :
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
Sie können eine benutzerdefinierte Lokalisierungsdatei erstellen. Laden Sie diese Datei herunter : http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot und bearbeiten Sie sie mit dem PoEdit-Tool (zum Beispiel). Speichern Sie im nächsten Schritt die Lokalisierungsdatei als en_GB.mo (oder eine andere) und bearbeiten Sie die wp-config-Datei:
define ("WPLANG", "en_GB");