角色和能力

角色和功能是WordPress的两个重要方面,允许您控制用户权限。

WordPress将角色及其功能存储在选项桌子下面用户角色(_R)键。

角色

角色为用户定义一组功能。例如,用户可能在仪表板中看到和执行的操作。

默认情况下,WordPress有六个角色:

  • 超级管理员
  • 管理员
  • 编辑器
  • 作者
  • 贡献者
  • 用户

可以添加更多角色,也可以删除默认角色。

添加角色

添加新角色并为其分配功能add_role().

函数wporg_simple_role(){添加角色(_R)(“simple_role”,“简单角色”,阵列('read'=>真,“edit_posts”=>true,“upload_files”=>true,),);}//添加simple_role。add_action('init','wporg_simple_role');

第一次呼叫后add_role(),角色及其功能将存储在数据库中!

顺序调用不会有任何作用:包括更改功能列表,这可能不是您所期望的行为。


要批量更改功能列表:使用删除角色删除(_role)并使用再次添加add_role()具有新功能。

确保只有在功能与您期望的不同时才这样做(即,这种情况),否则您将大大降低性能!

删除角色

删除角色删除(_role).

函数wporg_simple_role_reremove(){删除角色('simple_role');}//删除simple_role。add_action('init','wporg_simple_role_re_remove');

第一次呼叫后删除(),角色及其功能将从数据库中删除!

连续调用什么也不做。


如果要删除默认角色:

  • 我们建议反对删除管理员和超级管理员角色!
  • 确保将代码保存在插件/主题中,因为WordPress将来的更新可能会再次添加这些角色。
  • 运行
    update_option('default_role',YOUR_NEW_default_role)
    因为你要删除用户这是WP的默认角色。

能力

功能定义了角色可以和不能做:编辑帖子、发布帖子等。


自定义帖子类型可能需要特定的功能集。

添加功能

您可以为角色定义新功能。

使用获取()获取角色对象,然后使用添加cap()方法来添加新功能。

函数wporg_simple_role_caps(){//获取simple_role角色对象。$role=获取角色('simple_role');//添加新功能。$role->add_cap('edit_others_posts',true);}//添加simple_role功能时,优先级必须在初始角色定义之后。add_action('init','wporg_simple_role_caps',11);

可以向任何角色添加自定义功能。

在默认的WordPress管理下,它们没有任何作用,但可以用于自定义管理屏幕和前端区域。

删除功能

您可以从角色中删除功能。

该实现类似于添加功能,不同之处在于使用删除cap()方法。

使用角色和功能

获取角色

获取包含所有功能的角色对象获取角色(_role).

get_role($role);

用户可以

检查用户是否具有指定的角色能力具有user_can().

user_can($user,$capability);

有一个未记录的第三个参数$args,它可能包括应该对其执行测试的对象。

例如,通过帖子ID测试特定帖子的能力。

当前用户可以

当前用户扫描()是的包装函数user_can()使用当前用户对象作为$用户参数。

在后端和前端区域需要特定级别的权限才能访问和/或修改的情况下使用此选项。

current_user_can($capability);

例子

以下是一个实际示例,如果用户具有适当的功能,则在模板文件中的上添加编辑链接:

if(current_user_can('edit_posts')){edit_post_link(esc_html__(“编辑”,“wporg”),“<p>”,“</p>”);}

多点会议

这个current_user_can_for_blog()函数用于测试当前用户是否具有角色能力在特定的博客上。

current_user_can_for_blog($blog_id,$capability);

参考

Codex参考用户角色和功能.