函数描述
判断用户是否有某个权限或是否为某个角色,比如我们需要判断当前登录的用户是否为管理员,或者是否有作者权限。user_can 和 current_user_can 的功能一样,返回结果也一样,current_user_can 只是 user_can 的一个封装。
使用方法
user_can
current_user_can( $user, $capability, $args );
参数 | 数据类型 | 是否必需 | 描述 | 默认值 |
---|---|---|---|---|
$user | 整数|WP_User 对象 | 是 | 用户 ID 或用户对象 | 无 |
$capability | 字符串 | 是 | 角色或权限名称 | 无 |
$args | 多种 | 否 | 可选参数,通常为对象 ID。 | 无 |
current_user_can
current_user_can 其实就是 user_can 的一个快捷方式,把当前登录的用户作为了 user_can 的第一个参数 $user 提供了过去。
current_user_can( $capability, $args );
参数
参数 | 数据类型 | 是否必需 | 描述 | 默认值 |
---|---|---|---|---|
$capability | 字符串 | 是 | 角色或权限名称 | 无 |
$args | 多种 | 否 | 可选参数,通常为对象 ID。 | 无 |
返回值
(布尔值) 指定的用户是否有某个权限或是否为某个角色。
使用示例
判断当前用户是否可以编辑某文章。
if (current_user_can('edit_post', 1)) {
echo '当前用户可以编辑 ID 为 1 的文章';
}
如果当前用户不是管理员或没有管理访问权限,则隐藏管理员栏。
if ( ! current_user_can( 'manage_options' ) ) {
add_filter( 'show_admin_bar', '__return_false' );
}
显示只有管理员才可以看到的文字
if( current_user_can('administrator') ) {
echo '只有管理员才可以看到的文字。';
}