我是wordpress的新手,我有一个网站,其中包含一些与wordpress基本角色不同的角色(管理员,作者,贡献者......)
我创建了具有以下功能的chef_dept,employee员角色:
add_role('Chef_Dept', __(
'Chef_Dept'),
array(
'read' => true, // Allows a user to read
'create_posts' => true, // Allows user to create new posts
'edit_posts' => true, // Allows user to edit their own posts
'edit_others_posts' => true, // Allows user to edit others posts too
'publish_posts' => true, // Allows the user to publish posts
'manage_categories' => true, // Allows user to manage post categories
'upload_files' => true, // Allows user to upload file
)
);
add_role('employee ', __(
'employee '),
array(
'read' => true, // Allows a user to read
'create_posts' => true, // Allows user to create new posts
'publish_posts' => true, // Allows the user to publish posts
'manage_categories' => true, // Allows user to manage post categories
)
);
add_role( $role, $display_name, $capabilities );
我需要限制所有拥有角色员工的用户不能进入某些页面,这可能吗?
我正在使用限制页面角色插件,但似乎无效,因为具有员工角色的用户能够上传文件并进入受限制的页面< / p>
答案 0 :(得分:0)
你可以在你的functions.php中实现这个功能,它会处理这个问题,但你必须为每个页面分配用户必须拥有的功能。
function is_corr_user($page_slug) {
// User has to be logged in
if(!is_user_logged_in())
return false;
// All user roles
$roles = wp_get_current_user()->roles;
// For each page check if user has required role
switch($page_slug) {
case "page-1":
return in_array('Chef_Dept', $roles);
case "page-2":
return in_array('Chef_Dept', $roles);
default:
return false:
}
}
// Hook to wordpress before load and check if correct user is on page
add_action( 'wp', 'wpse69369_is_correct_user' );
function wpse69369_is_correct_user()
{
global $post;
// Not working on homepage
// Redirect to homepage if wrong user
if(!is_home() && !is_correct_user($post->post_name)) {
wp_redirect( '/' );
exit;
}
}
答案 1 :(得分:0)
您可以使用插件:
https://fr.wordpress.org/plugins/wp-jv-post-reading-groups/
我在内联网上使用它,因为它允许将wordpress的角色与公司的角色分离
当您创建页面或文章时,您有一个选择框,允许您定义哪个“阅读组”可以访问它
此外,它的创建者在出现问题时非常敏感