Я создал пользовательский пост-тип 'новости' с CPTUI .
И добавьте роль пользователя «news_manager» с этими возможностями
edit_post
edit_posts
publish_posts
edit_others_posts
edit_published_posts
Затем блокирует доступ к какой-либо странице с помощью remove_menu_page с помощью действия admin_menu
remove_menu_page( 'index.php' );
remove_menu_page( 'edit.php?post_type=blog' );
Затем перенаправление роли на «edit.php? Post_type = news»
function loginRedirect( $redirect_to, $request, $user ){
if ( current_user_can( 'news_manager' ) ) {
return "/wp-admin/edit.php?post_type=news";
}
return $redirect_to;
}
add_filter("login_redirect", "loginRedirect", 50, 3);
Но когда я создал пользователя news_manager и авторизовался с ним.
URL-адрес перенаправлен правильно. Но, будучи заблокированным, WordPress говорит эти
У вас недостаточно прав для доступа к этой странице администратора.
Причина: текущий пользователь имеет возможность «edit_posts», которая
требуется для доступа к пункту меню «Новости → Все новости».
Они заблокированы только на странице edit.php. Если получить доступ к конкретному посту, это пройдет. '/ wp-admin / post.php? Post = 22 & action = edit' например
Говорят, что у пользователя есть возможность просматривать, но блокировать доступ. Зачем? и как это исправить.
Версия
- Wordpress 4.9.4
- Пользовательский тип сообщения UI 1.5.6