【问题标题】:WordPress - Custom user role - grant guest access to edit.php without insert/update/deleteWordPress - 自定义用户角色 - 授予访客对 edit.php 的访问权限,无需插入/更新/删除
【发布时间】:2017-10-10 08:24:04
【问题描述】:

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

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

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

这些项目引用的页面如下:/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 到数据库

我不知道这是否可能,但我们将不胜感激。

【问题讨论】:

标签: php database wordpress permissions roles


【解决方案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');

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多