Answers:
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,您可以在db中编辑序列化的条目。实际上,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充满信心,甚至可以使用wp-cli中的嵌入式Wordpress REPL来获取存储的值,get_option('wp_user_roles')
然后用于update_option
更新它。
并且(总是)记住在操作选项之前备份数据库;)
…使用wp-cli可以轻松实现:
$ wp role create new_role 'New Role' --clone=old_role
$ wp role delete old_role