CPTUIで「ニュース」カスタム投稿タイプを作成しました。そして、これらの機能を持つ「news_manager」ユーザー ロールを追加します
edit_post
edit_posts
publish_posts
edit_others_posts
edit_published_posts
次に、基本的に admin_menu アクションによる remove_menu_page でいくつかのページへのアクセスをブロックします
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 リダイレクトは正しいです。しかし、ブロックされて、ワードプレスはこれらを言っています
この管理ページにアクセスするための十分な権限がありません。
理由: 現在のユーザーは、「ニュース → すべてのニュース」メニュー項目にアクセスするために必要な「edit_posts」機能を持っています。
これらは edit.php ページでのみブロックされます。特定の投稿にアクセスすれば合格です。'/wp-admin/post.php?post=22&action=edit'例
ユーザーには表示する機能がありますが、アクセスをブロックしていると言われています。なんで?これらを修正する方法。
バージョン
- ワードプレス 4.9.4
- カスタム投稿タイプ UI 1.5.6