有一整套专门用于此目的的功能;
http://codex.wordpress.org/Function_Reference#User_and_Author_Functions
特别感兴趣的(但不限于)是,
add_cap
add_role
get_role
map_meta_cap
remove_cap
remove_role
以及许多其他与用户相关的功能,这些功能将允许您根据您的用例场景等来验证/验证其权限。
正在查看wp-includes/capabilities.php
您可以看到,role\\u名称保存在一个数组中,因此,
add_action(\'init\', \'update_role_name\');
function update_role_name(){
global $wp_roles;
$wp_roles->roles[\'subscriber\'][\'name\'] = \'member\';
$wp_roles->role_names[\'subscriber\'] = \'member\';
}
可能需要一些调整,因为这还没有经过测试。
编辑:
我刚刚发现:is-there-way-to-rename-user-role-name-without-plugin - 看看吧。实际上与我的建议完全相同,只是实例化类并检查变量$wp_roles
实际定义/设置。我会假设它的工作基础是它的标记正确,但很自然,请对此进行测试以确认。
但以类似的方式查看以下直接取自core安装文件的内容wp-includes/capabilities.php
第133行,
/**
* Add role name with capabilities to list.
*
* Updates the list of roles, if the role doesn\'t already exist.
*
* The capabilities are defined in the following format `array( \'read\' => true );`
* To explicitly deny a role a capability you set the value for that capability to false.
*
* @since 2.0.0
* @access public
*
* @param string $role Role name.
* @param string $display_name Role display name.
* @param array $capabilities List of role capabilities in the above format.
* @return null|WP_Role WP_Role object if role is added, null if already exists.
*/
function add_role( $role, $display_name, $capabilities = array() ) {
if ( isset( $this->roles[$role] ) )
return;
$this->roles[$role] = array(
\'name\' => $display_name,
\'capabilities\' => $capabilities
);
if ( $this->use_db )
update_option( $this->role_key, $this->roles );
$this->role_objects[$role] = new WP_Role( $role, $capabilities );
$this->role_names[$role] = $display_name;
return $this->role_objects[$role];
}
。。。我们可以看到,
如果角色不存在,则更新角色列表。
add_role( $role, $display_name, $capabilities = array() )
。。。因此,更新现有角色的$display\\u name参数将具有相同的预期效果,而无需实际修改角色本身,以保留其与角色关联的用户。