Я работаю на сайте WordPress 5.2.3 и у меня возникли проблемы с чем-то в панели администратора.
У меня есть пользовательская роль, давайте назовем ее librarian
, и пользовательский тип записи, давайте назовем ееbook
.
Я хочу сделать так, чтобы librarian
мог редактировать 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
может см. страницу списка, но она включает кнопку Добавить новый .
Это заставляет меня думать, что это не проблема с пользовательской ролью, настроенной в целом.
Кто-нибудь сталкивался с этой проблемой раньше? Я что-то пропустил из своей конфигурации? Или есть легкий патч или обходной путь?
Любая помощь будет оценена! Спасибо.