WordPress - 自定义用户角色 - 授予访客访问edit.php而无需插入/更新/删除

时间:2017-05-11 11:06:10

标签: php database wordpress permissions roles

我正在一个网站上工作,我想向客户展示产品的演示版本。 为此,他们可以使用访客帐户登录,我已创建此角色,如下所示

add_role('guest', __('Guest'), array('read'=> true));

当我以访客身份登录时,我会被重定向到并查看overview-page /admin.php?page=my_overview,所以这确实有效,但当访客点击此概述中的任何项目时,我会收到一条消息: You无权访问此页面。

这些项目指的是:/profile.php /edit.php /users.php /admin.php 由于使用这些页面是我的产品功能的基本部分,我想授予访客帐户访问这些页面的权限,但不要让他们插入/更新/删除任何数据页。

我尝试添加多个不同的权限i.e. edit_posts, edit_private_posts, edit_private_pages, read_private_posts, read_private_pages,但我无法让它正常工作。

我想在不使用任何插件的情况下使用特定权限实现此来宾帐户。基本上我想创建一个可以像作者一样做的用户,但我的演示站点上没有任何INSERTs/UPDATEs/DELETEs到数据库

我不知道是否有可能,但任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

我已经弄明白了,我只创建了一个角色,但我没有添加任何功能。 我缺少的代码将会像现在一样工作:

function add_capability() {
    // gets the author role
    $role = get_role( 'guest' );
    // This only works, because it accesses the class instance.
    $role->add_cap( 'edit_others_posts' ); 
    $role->add_cap( 'read_post' ); 
    $role->add_cap( 'edit_posts' ); 
}
add_action( 'admin_init', 'add_capability');