Czy istnieje możliwość zmiany nazwy roli użytkownika za pomocą hooka, zamiast używania wtyczki?
Edytować
Na przykład administrator
»owner
Czy istnieje możliwość zmiany nazwy roli użytkownika za pomocą hooka, zamiast używania wtyczki?
Na przykład administrator
»owner
Odpowiedzi:
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
teraz ma [role_objects]
część swojej tablicy.
Prostym rozwiązaniem byłoby po prostu dodanie roli użytkownika add_role
, w ten sposób możesz nazwać ją jak chcesz i dodać dowolne funkcje.
http://codex.wordpress.org/Function_Reference/add_role
W rzeczywistości istnieje wiele sposobów na osiągnięcie tego:
Za pomocą czystego php i mysql możesz edytować serializowany wpis w bazie danych. Rzeczywiście, Wordpress przechowuje szeregowany szereg ról w wp_options
tabeli.
Więc:
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
zawartość db na dane wyjściowe z poprzedniego punktuJeśli czujesz się pewnie dzięki Wordpress, możesz nawet użyć wbudowanego narzędzia Wordpress REPL w wp-cli, aby pobrać przechowywaną wartość, get_option('wp_user_roles')
a następnie użyć jej update_option
do aktualizacji.
I (zawsze) pamiętaj, aby wykonać kopię zapasową bazy danych przed manipulacją opcjami;)
… Bardzo łatwo to osiągnąć dzięki wp-cli :
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
Możesz utworzyć niestandardowy plik lokalizacji. Pobierz ten plik: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot i edytuj za pomocą narzędzia PoEdit (na przykład). W następnym kroku zapisz plik lokalizacji jako en_GB.mo (lub inny) i edytuj plik wp-config:
Zdefiniuj („WPLANG”, „en_GB”);