user_can是WordPress函数之一,用于检查当前用户是否具有执行特定操作的权限。它的用法如下:

user_can( int|WP_User $user, string $capability, mixed ...$args )

参数:
- $user:一个用户ID(int)或一个WP_User对象,表示要检查权限的用户。如果不指定该参数,则默认为当前登录的用户。
- $capability:要检查的权限或角色名称。常见的权限包括‘edit_posts’(编辑文章)、‘publish_posts’(发布文章)、‘delete_posts’(删除文章)等。也可以是角色名称,如‘editor’、‘author’等。这里的权限和角色名称是大小写敏感的。
- $args:可选参数,用于进一步指定特定的条件。例如,当检查某个特定文章的权限时,可以将文章ID作为可选参数提供。

示例用法:

1. 检查当前用户是否具有编辑文章的权限:

if ( user_can( get_current_user_id(), 'edit_posts' ) ) {
// 当前用户具有编辑文章的权限
// 执行相应操作
} else {
// 当前用户没有编辑文章的权限
// 执行其他操作
}

2. 检查指定用户是否具有发布文章的权限:

$user_id = 123; // 假设用户ID为123
if ( user_can( $user_id, 'publish_posts' ) ) {
// 指定用户具有发布文章的权限
// 执行相应操作
} else {
// 指定用户没有发布文章的权限
// 执行其他操作
}

3. 检查当前用户是否具有删除指定文章的权限:

$post_id = 456; // 假设文章ID为456
if ( user_can( get_current_user_id(), 'delete_posts', $post_id ) ) {
// 当前用户具有删除指定文章的权限
// 执行相应操作
} else {
// 当前用户没有删除指定文章的权限
// 执行其他操作
}

通过使用user_can函数,您可以轻松地检查用户的权限,并根据结果执行相应的操作。请注意,在使用此函数时,请确保已经在正确的上下文中调用它,以保证正确的用户权限验证。