【发布时间】:2018-04-29 14:47:03
【问题描述】:
首先,我是一名 WordPress 学习者。很抱歉,如果我的代码看起来很愚蠢!
我创建了一个具有自定义用户角色的自定义主题。我没有开发任何插件。
在我的 fucntions.php 文件中,我编写了以下代码来创建用户角色。分配给此角色的用户应该登录到管理员,但只能访问他们的个人资料页面。
add_action('init', 'yrc_cst_register_role_customer_service_rep');
/**
* Register new user role
*/
function yrc_cst_register_role_customer_service_rep() {
$wp_roles = new WP_Roles();
$wp_roles->remove_role('subscriber');
$wp_roles->remove_role('editor');
$wp_roles->remove_role('contributor');
$wp_roles->remove_role('author');
$service_rep_caps = array(
'read' => false,
'create_posts' => false,
'edit_posts' => false,
'edit_others_posts' => false,
'publish_posts' => false,
'manage_categories' => false,
'manage_options' => false,
);
add_role('customer_service', __('Customer Service'), $service_rep_caps);
}
我已删除除管理员之外的所有角色,因为此门户不需要其他角色。管理员只会创建具有客户服务角色的用户。
我没有在系统中安装第三方插件。
具有自定义角色的用户可以通过正常工作的自定义登录页面登录系统。但每当他们试图访问他们的个人资料页面时,就会出现以下错误消息:
抱歉,您无权访问此页面。
有'edit_profile' => true之类的吗?
我一定是做错了什么,但我有限的知识不足以解决这个问题。任何建议将不胜感激。
【问题讨论】:
-
我认为他需要“阅读”=> 是的
-
但话又说回来 - 默认情况下,订阅者只能访问他们的个人资料页面,对吧?
-
是的 - 角色应该只有“读”
-
这种情况下需要加
'capabilities' => 'subscriber'吗?更改为'read' => true没有任何区别。同样对于自定义角色,定义能力的正确方法是什么,以便他只能访问他的个人资料页面?
标签: wordpress user-roles