WordPress 常用函数 / remove_cap
简介
删除指定的用户角色或者具体的某个用户的特定权限。
修改用户角色或者具体用户的权限是永久性的,除非再次授予。
用法
<?php global $wp_roles; $wp_roles->remove_cap( $role, $cap ); ?>
参数
$role WP_Roles 类中才有该参数,WP_Role 和 WP_User 类中没有该参数。
(string) (Required) 用户角色名称
Default: None
$cap
(string) (Required) 权限名称
Default: None
返回值
无
实例
add_action( 'admin_init', 'remove_editor_read_private_posts' );
function remove_editor_read_private_posts(){
$role = get_role( 'editor' );
$role->remove_cap( 'read_private_posts' );
// 或者
global $wp_roles;
$wp_roles->remove_cap( 'editor', 'read_private_posts' );
}
// 除了删除用户角色的权限,也可以删除特定的用户的权限。
$user = new WP_User( $user_id );
$user->remove_cap( 'read_private_posts' );
注解
- 没有公共的 remove_cap() 函数,只有 WP_Roles, WP_Role, WP_User 这三个类中的方法可以删除权限。
- 用户角色的权限设置是添加到数据库中(表 wp_options 的 wp_user_roles 字段中),所以该函数最好在主题/插件激活的时候调用。
修改记录
Since 2.0.0
源文件
wp-includes/capabilities.php