Есть ли способ переименовать имя роли пользователя через ловушку вместо использования плагина?
редактировать
Например, administrator
»owner
Есть ли способ переименовать имя роли пользователя через ловушку вместо использования плагина?
Например, administrator
»owner
Ответы:
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
теперь есть [role_objects]
часть его массива.
Простым решением было бы просто добавить роль пользователя, используя ее add_role
, чтобы вы могли называть ее по своему усмотрению и добавлять любые нужные вам возможности.
http://codex.wordpress.org/Function_Reference/add_role
На самом деле, есть много способов добиться этого:
С чистым php и mysql вы можете редактировать сериализованную запись в БД. Действительно, Wordpress хранит сериализованный массив ролей в wp_options
таблице.
Так:
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
содержимое БД с выводом из предыдущей точкиЕсли вы уверены в Wordpress, вы можете даже использовать встроенный Wordpress REPL в wp-cli, чтобы извлечь сохраненное значение, get_option('wp_user_roles')
а затем использовать update_option
для его обновления.
И (всегда) не забудьте сделать резервную копию базы данных перед манипуляциями с опциями;)
… Это очень легко сделать с помощью wp-cli :
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role
Вы можете создать собственный файл локализации. Получите этот файл: http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot и отредактируйте его с помощью инструмента PoEdit (например). На следующем шаге сохраните файл локализации как en_GB.mo (или другой) и отредактируйте файл wp-config:
define ("WPLANG", "en_GB");