Есть ли способ переименовать имя роли пользователя через ловушку вместо использования плагина?
редактировать
Например, 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");