Роли и права пользователей
WordPress использует механизм Ролей пользователей, суть которого заключается в том, чтобы дать возможность контроля, что другие пользователи сайта могут или не могут делать в админке, например публиковать свои посты, создавать страницы, устанавливать плагины, темы, редактировать других пользователей и так далее.
У каждой роли есть свой набор прав, о которых мы поговорим чуть ниже, к примеру «Администраторы» — это группа пользователей, а switch_themes (возможность смены темы оформления) уже относится к правам этой группы.
И конечно не могу не порекомендовать свой видеокурс по созданию темы WordPress с нуля на основе готовой HTML-вёрстки, который поможет классно прокачать ваши навыки в WP.
Роли пользователей
В WordPress по умолчанию уже существует 6 групп (ролей) пользователей:
- Super Admin — суперадминистратор, который имеет право управлять сетью сайтов.
- Administrator — администратор.
- Editor — редактор, может публиковать и редактировать посты других пользователей.
- Author — автор, может публиковать и редактировать собственные посты.
- Contributor — участник, может писать и отправлять свои посты на модерацию.
- Subscriber — подписчик, всё, что он может — это редактировать свой профиль.
А если у вас стоит плагин для интернет-магазинов WooCommerce, то у вас будет ещё две дополнительные роли, о них я рассказываю в отдельном уроке.
Сразу после установки WordPress автоматически создается пользователь-администратор.
Также вы можете установить, какую роль нужно присваивать только что зарегистрированному пользователю. Это настраивается в «Настройки > Общие».
Изменить роль пользователя можно на странице его профиля или же на странице со всеми пользователями:
Чуть дальше я покажу, как можно удалить эти роли, да и вообще, создать собственные.
Но сначала давайте чуть подробнее остановимся на стандартных ролях пользователей.
Администратор (administrator)
Вот так выглядит админка администраторов (рекомендую обратить внимание именно на меню слева).
Если мы не говорим о сети сайтов WordPress Мультисайт, то администраторы могут всё – устанавливать плагины и темы, редактировать весь контент и настройки, создавать и удалять пользователей, сбрасывать пароли и так далее. Полный список их прав в таблице ниже.
Редактор (editor)
Редакторы – это такие ребята, которые не имеют доступ к настройкам и плагинам сайта, зато имеют полный доступ к любому контенту и могут создавать и редакторивать как свои посты, так и чужие. А также модерировать комментарии и редактировать категории и метки.
Автор (author)
Авторы могут публиковать и редактировать только свои собственные посты типа «Записи». И удалять кстати тоже. То есть у них уже нет доступа к Страницам. И не могут создавать новые рубрики и метки.
Участник (contributor)
Что-то типо облегчённой версии роли автора. Могут писать и редактировать посты в виде черновиков, но при публикации посты должны пройти одобрение администраторами или редакторами. Кроме того, не могут изменить свои же, уже опубликованные посты и загружать медиафайлы.
Подписчик (subscriber)
Ну и последняя стандартная роль WordPress – подписчик, который не может ровным счётом ничего 😁 Ну окей, они могут изменять информацию в своём профиле и читать посты, на этом всё.
Супер-администратор
Вы наверное подумали: «Так, а где роль суперадмина?» Почему я не рассказал про неё в самом начале? А это даже и не совсем роль – это роль администратора с возможностью управления сетью WordPress Мультисайт.
У него появляется доступ в отдельную консоль для мультисайта.
Таблица ролей и прав пользователей
Для того, чтобы вам было удобнее ориентироваться в огромном количестве прав пользователей, сделал для вас таблицу. Не забывайте кликать на ссылку-название определённого права, чтобы почитать про него подробнее, так как для некоторых прав существуют различные условия, когда они работают по-другому.
| Права | Суперадмин | Админ | Редактор | Автор | Участник | Подписчик |
|---|---|---|---|---|---|---|
| install_plugins | Да | Да | ||||
| update_plugins | Да | Да | ||||
| activate_plugins | Да | Да | ||||
| edit_plugins | Да | Да | ||||
| delete_plugins | Да | Да | ||||
| install_themes | Да | Да | ||||
| switch_themes | Да | Да | ||||
| edit_themes | Да | Да | ||||
| edit_theme_options | Да | Да | ||||
| update_themes | Да | Да | ||||
| delete_themes | Да | Да | ||||
| update_core | Да | Да | ||||
| import / export | Да | Да | ||||
| manage_options | Да | Да | ||||
| edit_dashboard | Да | Да | ||||
| create_users | Да | Да | ||||
| edit_users | Да | Да | ||||
| delete_users | Да | Да | ||||
| list_users | Да | Да | ||||
| promote_users | Да | Да | ||||
| remove_users | Да | Да | ||||
| moderate_comments | Да | Да | Да | |||
| manage_categories | Да | Да | Да | |||
| edit_pages | Да | Да | Да | |||
| edit_others_pages | Да | Да | Да | |||
| edit_published_pages | Да | Да | Да | |||
| publish_pages | Да | Да | Да | |||
| delete_pages | Да | Да | Да | |||
| delete_others_pages | Да | Да | Да | |||
| delete_published_pages | Да | Да | Да | |||
| delete_private_pages | Да | Да | Да | |||
| edit_private_pages | Да | Да | Да | |||
| read_private_pages | Да | Да | Да | |||
| edit_others_posts | Да | Да | Да | |||
| delete_others_posts | Да | Да | Да | |||
| delete_private_posts | Да | Да | Да | |||
| edit_private_posts | Да | Да | Да | |||
| read_private_posts | Да | Да | Да | |||
| edit_published_posts | Да | Да | Да | Да | ||
| publish_posts | Да | Да | Да | Да | ||
| delete_published_posts | Да | Да | Да | Да | ||
| edit_posts | Да | Да | Да | Да | Да | |
| delete_posts | Да | Да | Да | Да | Да | |
| unfiltered_html | Да | Да | Да | |||
| upload_files | Да | Да | Да | Да | ||
| read | Да | Да | Да | Да | Да | Да |
| manage_network | Да | |||||
| manage_sites | Да | |||||
| manage_network_users | Да | |||||
| manage_network_themes | Да | |||||
| manage_network_options | Да | |||||
| upgrade_network | Да | |||||
| setup_network | Да |
Также напоминаю про свой видеокурс по натяжке готовой вёрстки на WordPress.
Примитивные и Мета-права
Сейчас пришло время рассказать вам о важном моменте, связанном с правами пользователя. Я также упоминал о нём, когда описывал функцию register_post_type().
Чтобы понять, как это работает, лучше всего обратиться к примеру.
Предположим, что у нас есть какое-то право, допустим это edit_posts. И мы например можем проверить функцией current_user_can(), может ли текущий пользователь в принципе редактировать посты или нет. Это примитивное право, под него попадают все возможные посты. Это можно проверить:
Но как вы знаете, у нас есть например роль Авторы, которые могут редактировать только свои посты. Как проверить, что они это могут делать? При помощи мета-права!
Мета-права создаются «на лету» динамически, например алгоритм такой, что WordPress чекает, может ли пользователь редактировать чужие посты примитивным правом edit_others_posts , если нет, то он проверяет, является ли пользователь автором проверяемого поста $post->ID . И вот так это и работает.
Источник