找回密码
 免费注册

Wordpress 为用户或角色 role 添加 capabilities(权限)

[复制链接]
admin 发表于 2020-8-15 15:01:38 | 显示全部楼层 |阅读模式
首先查看角色具有哪些权限:
  1. $admin_role_set = get_role( 'administrator' )->capabilities;
  2. $author_role_set = get_role( 'author' )->capabilities;
复制代码
注意:修改权限的行为是永久性的,除非你手动删除该权限,因为角色的权限设置是保存到数据库中的(保存在数据表 wp_options,字段名称option_name,值为 wp_user_roles),
  1. SELECT * FROM `wp_options` WHERE option_name = 'wp_user_roles';
复制代码

可以通过两种方式添加权限:
  1. <?php
  2.   global $wp_roles; // global class wp-includes/capabilities.php
  3.   $wp_roles->add_cap( $role, $cap );
  4. ?>
  5. or
  6. <?php
  7.   $role = get_role( 'author' );
  8.   $role->add_cap( $cap );
  9. ?>
  10. Parameters 参数介绍:

  11. $cap 代表权限名称,为字符串,如 'unfiltered_html'
复制代码
Example:
  1. function add_theme_caps() {
  2.     // gets the author role
  3.     $role = get_role( 'author' );

  4.     // This only works, because it accesses the class instance.
  5.     // would allow the author to edit others' posts for current theme only
  6.     $role->add_cap( 'edit_others_posts' );
  7. }
  8. add_action( 'admin_init', 'add_theme_caps');
复制代码


为特定用户添加功能权限:
  1. $user = new WP_User( $user_id );
  2. $user->add_cap( 'can_edit_posts' );
复制代码
add_cap  的定义位于下列文件中:

wp-includes/class-wp-role.php

wp-includes/class-wp-roles.php

wp-includes/class-wp-user.php

unfiltered_html 权限允许用户在文章或评论等地方插入 js 代码等特殊标签,但是只有管理员以及 Editor 默认有该权限,具体权限表请查阅:

参考文档


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-16 08:49 , Processed in 0.088426 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表