0

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
4

1 に答える 1