Возможности меню в WordPress
Можно ли указать две группы пользователей (например, администраторов и редакторов) в поле capability для админ-меню? Я пробовал следующий код, но он не работает:
add_submenu_page(
'my-top-level-handle',
'Page title',
'Sub-menu title',
array('administrator', 'editor'),
'my-submenu-handle',
'my_magic_function'
);
Сообщение об ошибке:
Warning: Illegal offset type in isset or empty in C:\wamp\www\wordpress\wp-includes\capabilities.php on line 712

Параметр capability функции add_submenu_page() может принимать только одну конкретную capability (возможность), поэтому если вы используете встроенные роли, вы можете выбрать capability из длинного списка, которая есть как у администраторов, так и у редакторов. Можно свободно использовать любую из следующих:
- moderate_comments
- manage_categories
- manage_links
- unfiltered_html
- edit_others_posts
- edit_pages
- edit_others_pages
- edit_published_pages
- publish_pages
- delete_pages
- delete_others_pages
- delete_published_pages
- delete_others_posts
- delete_private_posts
- edit_private_posts
- read_private_posts
- delete_private_pages
- edit_private_pages
- read_private_pages

Как сказал t31os, вы можете использовать возможности (capabilities) вместо ролей. Один из способов - это использование стандартных возможностей WordPress. (Более продвинутый метод - добавление пользовательской возможности к выбранным ролям.) Стандартные возможности находятся в файле wp-admin/includes/schema.php
в функциях, вызываемых через populate_roles()
.
Если вы используете стандартные роли/возможности, вы можете ограничить доступ только для администраторов и редакторов с помощью возможностей level_7
или edit_others_posts
, или нескольких других.
