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