编辑
例如,
administrator
»owner
#1 楼
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]部分。
–泽斯
19年3月16日在16:06
这做了一些很奇怪的事情。它只影响了第一个字母(“管理员”)!
–马克
19年4月4日在16:19
#2 楼
实际上,有许多方法可以实现:使用纯PHP和mysql,您可以在db中编辑序列化条目。实际上,Wordpress将角色的序列化数组存储在
wp_options
表中。因此:
获取序列化的数组:
SELECT option_value as serialized_string FROM wp_options WHERE option_name = 'wp_user_roles';
反序列化字符串– php:
$rolesArray = unserialize($serialized_string)
更改角色名称– php:
$rolesArray['role_key']['name'] = "New name"
序列化数组– php:
echo serialize($rolesArray)
替换数据库
option_value
内容与上一点的输出内容如果您对Wordpress充满信心,甚至可以使用wp-cli中的嵌入式Wordpress REPL通过
get_option('wp_user_roles')
获取存储的值,然后使用update_option
进行更新。 br /> (总是)记得在选项操作之前备份数据库;)
否则,如果您不在乎role_key的值…
< br…使用wp-cli可以很容易地实现这一目标:
复制现有角色–
$ wp role create new_role 'New Role' --clone=old_role
删除旧角色–
$ wp role delete old_role
,然后将new_role与用户关联。
最终重复步骤1和2,直到old_role = new_role
#3 楼
一个简单的解决方案是只使用add_role
添加一个用户角色,这样您就可以为它命名任意名称,并添加所需的任何功能。 >评论
试图避免这种情况,但是我想这是没有插件的最干净的方法。
–Sean Lee
2011年7月15日在22:16
#4 楼
如果您使用的是4.7及更高版本的WP版本,则可以使用wp_roles_init
操作来完成此操作,例如: add_action( 'wp_roles_init', static function ( \WP_Roles $roles ) {
$roles->roles['administrator']['name'] = 'Owner';
$roles->role_names['administrator'] = 'Owner';
} );
#5 楼
您可以创建一个自定义的本地化文件。获取此文件:http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot并使用PoEdit工具进行编辑(例如)。在下一步中,将本地化文件另存为en_GB.mo(或其他文件)并编辑wp-config文件:定义(“ WPLANG”,“ en_GB”);
评论
已经尝试过此方法,但是某些下拉菜单未翻译。
–Sean Lee
2011年7月15日在22:15
#6 楼
您可以直接在数据库中对其进行编辑,并且将为您的网站进行永久性编辑。 WP在这里保留用户角色SELECT * from blog_options WHERE option_name = 'blog_user_roles'
评论
您能详细说明您想要实现的目标吗?重命名用户角色名称,就是这样。例如,管理员->所有者