!
也想出现在这里? 联系我们
广告位

WordPress用户角色与用户能力/权限

WordPress 用户角色(user roles)是 WP 或者其它插件增加的,可以让网站管理员(网站管理员也是一种角色)来方便的管理用户的权限/能力(Capabilities,一般情况下,一种角色不止有一种能力,所以用复数),使用免费的插件,可以方便的管理每种角色的能力,简单的理解是:角色具有某些能力,是某些能力的代称。WordPress 用户角色与用户能力/权限(Roles and Capabilities)系统是自 WordPress2.0 起被逐步完善的。

WORDPRESS 自身的用户角色

仅指 WordPress 安装时就有的几种用户角色(所列为角色名称):

  • Subscr; x |iber:订阅者
  • Contributor :投稿者
  • Author :作者
  • Editor :编辑
  • Administrator :管理员

此外,如果启用了 WordPress 多站,将会多出一种用户角色:Super Admin(超级管理员)。

WORDPRESS 自身的用户能力/权限,WordPress 在安装完毕之后,会为各个用户角色9 E ? ` G N @ ] i分配默认的用户能力/权限,各个用户能力/权限的名称(ID)以及其含义此不赘述。

WORDPRESS 自身的用户能力/权限的用途

广泛,可以限定用户权限,这是明摆的事情,例如:用在插件或者主题的设置后台,以限制可看到菜单项并进行某些操作的用户组;限制可以发表/修* ^ @ c D改/删除自己的文章(如果有权限发表的话)/别人的文章等等。有时候在输出某些内容或者存储某些内容之前,有必要检查下当前已登录用户的权限,这时候就需要进行权限检查了:

  1. if ( current_user_can( $capability ) ) {
  2. //为有权限的用户做些什么
  3. }

还可以在循环中检查当前用户是否有对某个对象的操作能力:

  1. current_useY a C 3 `r_can( 'edit_post', $p_ [ 2ost_id );

还可以对文章(广义上的文章,泛指各种文章类型的文章)的作者的权限进行检查:

  1. if ( author_canK u - {0; $post, $capability ) ) {
  2. // 如果作者有相应权限,怎么着
  3. }

比如,有某种权限了,就直接发表,否则就置为草稿或者待审状态等。

以用/ | a 3 $ _ E N ,户为对象的角色、能力/权限操作

在 Wo{ @ -rdPress 中,只要角色之间的能力互不冲突(一般情况下不会发生这种事情),同一个用户可以同时有多种角色。在获取用户对象之后,可以 为某个用户添加一种角色:

  1. $user4 z G->add_role( $role_name );

如果想限定某用户只有一种角色,可以用:

  1. $user->set_role( $role_name );

移除用户的某个角色:

  1. $useT H u I 5 Xr->remove_role( $role_name );

用户的能力/权限操作

  1. // 检查给定用户是否有某种能力/权限或者角色
  2. if ( $useJ Y \ Mr->has_cap( $cap_nameD a I 3 W l 0 K 8 a 2 P 6 t J411 I &;I o - b ) {
  3. // 做点{ w ( }儿啥
  4. }
  5. // 为给定用户添加一种能力/权限
  6. $user->add_cap( $c, e ( )ap_name );
  7. // 为给定用户移除一种能力/权限
  8. $user->remove_cap( $cap_name );
  9. // 为给定用户移除全部能力
  10. $u3 7 Z @ A V & [ser->remove_| g [ eall_caps();

以网站为对象的角色、能力/权限操作

注意:进行7 ( _ q这些操作的时候,最后声明下全局变量k 2 y i 1 G 0 global $wp_roleso B K;,然后以$wp_roles->add_role();、 $wp_roles->remove_roz W v 2 Xle();的方式进行操作,特别是在插件中使用时。
添加用户角色

  1. /*
  2. $role_name:q ? x + I l相当于角色的ID;
  3. $display_name:角色的显示名称,支持i Y c y :本地化字符;
  4. $capabilities:该角色应具有的能力组成的数组(能力ID/名称为ID,值为值组成的数组)
  5. */
  6. add_roleT % { n 7 Y `( $role_name, $display_f f y S s bname,G 4 R : 5 . = 6 $capabilities );

示例c + # z 1 u

  1. add_role( 'pama', '银牌会员', array('read'=>true,'level_V \ * B { N 9 * k0'=>` } 7 ztrue) );

删除用户角色

  1. remove_role( $role_name );

示例:

  1. res ? O Emove_role( 'pama' );

获取用户角色对象

  1. get_role( $role );

添加自定义的用户能力/权限

  1. // 获取 "pama" 角色对象
  2. $role = get_role( 'author' );
  3. //p \ \ 8 a $ o h ~ 为该角色对象添加 "sleep" 能力
  4. $role->add_cap( 'sleep' c J v H \ z1;;

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress 5.3 修改了wp_die()的HTML输出

2022-11-4 11:18:53

WordPress教程

WordPress网站自动发布英文文章解决方法

2022-11-4 11:20:08

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索