WordPress - 自定义用户角色 - 在没有 insert/update/delete 的情况下授予来宾访问 edit.php
WordPress - Custom user role - grant guest access to edit.php without insert/update/delete
我在一个网站上工作,我想向客户展示产品的演示版。
为此,他们可以使用来宾帐户登录,我已按如下方式创建了此角色
add_role('guest', __('Guest'), array('read'=> true));
当我以访客身份登录时,我被重定向到并看到 overview-page /admin.php?page=my_overview
,所以这确实有效,但是当访客单击此概览中的任何项目时,我收到一条消息:您没有访问该页面的权限。
这些项目引用的页面如下:/profile.php /edit.php /users.php /admin.php
由于使用这些页面是我产品功能的基本部分,我想 授予来宾帐户访问这些页面的权限,但不要让他们 insert/update/delete 任何数据 显示在这些页面上。
我试过添加多个不同的权限i.e. edit_posts, edit_private_posts, edit_private_pages, read_private_posts, read_private_pages
,但我无法让它正常工作。
我想在不使用任何插件的情况下获得具有特定权限的访客帐户。基本上我想创建一个可以像作者一样做的用户,但在我的演示站点上没有任何 INSERTs/UPDATEs/DELETEs
到数据库
我不知道这是否可行,但我们将不胜感激。
我明白了,我只是创建了一个角色,并没有给它添加任何能力。
我缺少的代码现在可以正常工作了:
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');
我在一个网站上工作,我想向客户展示产品的演示版。 为此,他们可以使用来宾帐户登录,我已按如下方式创建了此角色
add_role('guest', __('Guest'), array('read'=> true));
当我以访客身份登录时,我被重定向到并看到 overview-page /admin.php?page=my_overview
,所以这确实有效,但是当访客单击此概览中的任何项目时,我收到一条消息:您没有访问该页面的权限。
这些项目引用的页面如下:/profile.php /edit.php /users.php /admin.php
由于使用这些页面是我产品功能的基本部分,我想 授予来宾帐户访问这些页面的权限,但不要让他们 insert/update/delete 任何数据 显示在这些页面上。
我试过添加多个不同的权限i.e. edit_posts, edit_private_posts, edit_private_pages, read_private_posts, read_private_pages
,但我无法让它正常工作。
我想在不使用任何插件的情况下获得具有特定权限的访客帐户。基本上我想创建一个可以像作者一样做的用户,但在我的演示站点上没有任何 INSERTs/UPDATEs/DELETEs
到数据库
我不知道这是否可行,但我们将不胜感激。
我明白了,我只是创建了一个角色,并没有给它添加任何能力。 我缺少的代码现在可以正常工作了:
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');