WordPress 修改、添加、删除新用户角色

WordPress 自带了多个默认的用户角色,比如 超级管理员(多站点)、管理员、编辑、作者、投稿者、订阅者。在实际使用中,如果我们需要更改这些默认的用户角色名称,或者添加新的用户角色,该如何操作呢?今天就来说说说通过代码实现的方式。

修改用户角色名称

将下面的代码添加到当前主题的 functions.php ,可以将 administrator 这个角色名修改为 Owner,你可以根据实际需要照样画葫芦就可以了。

/**
* WordPress 修改用户角色名称和添加新用户角色 
* https://www.wpdaxue.com/change-wordpress-role-name-add-new-role.html
*/
function wpdx_change_role_name() {
    global $wp_roles;
 
    if ( ! isset( $wp_roles ) )
        $wp_roles = new WP_Roles();
 
    //你可以像这样所列出当前所有有效的用户角色...
    //$roles = $wp_roles->get_names();
    //print_r($roles);
 
    //你可以使用其他角色名称替换 "administrator" , "editor", "author", "contributor" 或 "subscriber"...
    $wp_roles->roles['administrator']['name'] = '我的权限'; //修改常规选项中用户角色和添加用户页面角色
    $wp_roles->role_names['administrator'] = '我的权限';    //修改用户目录中角色       
}
add_action('init', 'wpdx_change_role_name');

效果:

新增用户角色

将下面的代码添加到当前主题的 functions.php ,就可以添加一个名为 Basic Contributor 的用户角色,此代码执行一次就可以了,即执行一次就已经写入数据库,执行一次就可以删除了。

//WordPress 添加用户角色
add_role('custom_role', 'Basic Contributor', array(
    'read' => true, //阅读权限,true 表示允许
    'edit_posts' => true,//编辑文章的权限,true 为允许
    'delete_posts' => false, //删除文章的权限,false 表示不允许删除
));

三、WordPress 删除用户角色

复制如下代码到 wordpress 主题的 functions.php 文件中:

//WordPress 删除用户角色
remove_role( 'contributor' );//投稿者
remove_role( 'subscriber' );//订阅者
remove_role( 'author' );//作者
remove_role( 'editor' );//编辑

remove_role( 'custom_role' );//删除上面添加的Basic Contributo角色

参考与拓展

add_role() 函数:http://codex.wordpress.org/Function_Reference/add_role

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

WordPress用户角色编辑插件:User Role Editor