WordPress 5.2.3 サイトを実行していますが、管理パネルで問題が発生しています。
私はカスタムロールを持っています、それを呼びましょうlibrarian
、そしてカスタム投稿タイプはそれを呼びましょうbook
。
librarian
a が a を編集できるbook
が、新しいものを作成できないようにしたい。
別の質問 ( WordPress: カスタム投稿タイプで「新規追加」を無効にする) とWordPress ドキュメントのアドバイスに従って、次のコードになりました。
// Custom post type.
register_post_type('book',
array(
'labels' => array(
'name' => __( 'book' ),
'singular_name' => __( 'Book' )
),
'capability_type' => array('book', 'books'),
'capabilities' => array(
'create_posts' => 'do_not_allow' // <-- The important bit.
),
'map_meta_cap' => true,
'description' => 'Book full of pages',
'exclude_from_search' => true,
'publicly_queryable' => false,
'show_in_nav_menus' => false,
'show_ui' => true,
'show_in_menu' => true,
'show_in_rest' => true,
'menu_icon' => 'dashicons-location',
'menu_position' => 5,
'supports' => array('title', 'revisions')
));
// Custom role.
add_role('librarian', 'Librarian', array(
'read' => true,
'edit_books' => true,
'edit_published_books' => true
));
edit.php?post_type=book
としてアクセスしたときに、編集用librariran
のリストが表示されることを期待していましたが、[新規追加] ボタンが表示されませんでした。ただし、実際に得られるのは次のような応答です。books
403
このページへのアクセスは許可されていません。
以下の場合は、WordPress のバグではないかと思います。
edit.php?post_type=book
としてアクセスすると、必要に応じて [新規追加] ボタンadministrator
のないリスト ページが表示されます。librarian
役割に機能を与えると、必要に応じて [新規追加edit_posts
] ボタンのないリスト ページが表示されます (ただし、機能を与えたくありません!)。edit_posts
これらは、一般的に設定されたカスタム投稿タイプでは問題ではないと私に思わせます.
- タイプ登録
'create_posts' => 'do_not_allow'
からを削除すると、リスト ページが表示されますが、[新規追加] ボタンが含まれています。book
librarian
これは、一般的に設定されたカスタム ロールでは問題ないと思われます。
以前にこの問題に遭遇した人はいますか? 構成から何かを逃したことがありますか? または、簡単なパッチまたは回避策はありますか?
どんな助けでも大歓迎です!ありがとう。