首页 问答 正文

如何创建和管理WordPress网站的用户角色和权限?

注册会员 / 悠然自学 / 2023-06-11/ 浏览 156 次

创建用户角色

在WordPress中,可以使用add_role()函数来创建自定义的用户角色。

例如,以下代码可以创建一个名为“test_role”的新用户角色:

$result = add_role( 
    'test_role', // 角色ID
    '测试角色', // 角色名称
    array(
        'read' => true, // 允许查看前台
        'edit_posts' => true, // 允许编辑内容
        'delete_posts' => false, // 不允许删除内容
    )
); 

在上述代码中,第一个参数指定了角色的ID,第二个参数指定了角色的名称,第三个参数是一个包含指定权限的数组,可以根据需要进行更改。

管理用户角色的权限

WordPress中有两种常见的方法可以在用户角色中管理权限:使用预定义的角色,或者使用插件来创建和管理自定义角色的权限。

对于预定义的角色,可以在“用户”->“角色”菜单中查看和编辑每个角色的权限。

对于自定义角色的权限,可以使用插件实现。一些流行的插件包括:

  1. Capability Manager Enhanced - 提供了一组友好的界面,让您能够轻松地创建和编辑自定义角色的权限。
  2. User Role Editor - 让您能够更改现有角色的权限,以及创建自定义角色和特定页面的特定权限。

例如,下面的代码可以将“test_role”用户角色的“publish_posts”权限修改为“false”:

$role = get_role( 'test_role' );
$role->remove_cap( 'publish_posts' ); 

在上述代码中,使用get_role()函数获取了指定ID的角色对象,然后使用remove_cap()函数将“publish_posts”权限从角色中删除。

示例代码

以下代码演示了如何创建一个名为“reviewer”的用户角色,允许用户查看其他作者的文章、编辑自己的文章并在站点上提交评论:

function add_reviewer_role() {

    // 创建新角色
    add_role( 'reviewer', 'Reviewer', array(
        'read' => true, // 允许查看前台
        'edit_posts' => true, // 允许编辑内容
        'edit_others_posts' => true, // 允许编辑其他用户的文章
        'publish_posts' => false, // 不允许发布文章
        'read_private_posts' => false, // 不允许查看其他用户的私人文章
        'read_private_pages' => false, // 不允许查看其他用户的私人页面
        'manage_categories' => true, // 允许管理分类
        'manage_links' => true, // 允许管理链接
        'edit_comments' => true, // 允许编辑评论
        'moderate_comments' => true, // 允许审核评论
        'manage_options' => false, // 不允许管理选项
    ) );

}

add_action( 'init', 'add_reviewer_role' ); // 在初始化时添加角色 

在上述代码中,使用add_role()函数创建了一个名为“reviewer”的新用户角色,其中包含了指定的权限。该角色可以在站点中看到其他作者的文章并提交评论,但不能发布新文章。

大家谈论
    我的见解