Как создать пользовательскую роль в WordPress

Опубликовано: 2021-02-06

При создании веб-сайта с помощью CMS всегда приветствуется гибкость. К счастью, WordPress имеет больше, чем его доля, с темами и плагинами, которые позволяют нам создавать очень настраиваемый опыт.

Но его гибкость выходит за рамки только тех дополнительных вещей, которые мы можем установить. Это на самом деле запечено прямо в ядре программного обеспечения.

Ярким примером является возможность создавать собственные роли пользователей. Сегодня мы рассмотрим, что это такое, почему вы хотите их использовать, а также несколько различных методов их создания.

Детальный контроль над разрешениями пользователей

В каждой установке WordPress у вас уже есть доступ к набору ролей пользователей по умолчанию. Они позволяют нам определять, что пользователи могут и не могут делать в бэкэнде (он же Dashboard) веб-сайта.

Это имеет смысл. Не всем, кто управляет контентом, нужны административные привилегии. Таким образом, мы можем назначить каждому пользователю роль в зависимости от потребности. Это отличная мера безопасности, которая может лучше защитить от неудач или даже от того, что кто-то устанавливает плагины.

Это также работает на переднем конце. Если вы хотите, чтобы только зарегистрированные пользователи видели определенный контент, вы можете встроить эту функцию в свою тему или добавить ее через плагин членства.

Но хотя роли пользователя по умолчанию (Администратор, Редактор, Автор, Участник и Подписчик) полезны, бывают случаи, когда вам нужен дополнительный контроль. Вот почему WordPress предоставляет возможность создавать свои собственные роли.

Когда использовать пользовательскую роль

Настраиваемая роль пользователя может пригодиться в нескольких сценариях. Вот некоторые из наиболее распространенных проблем, с которыми вы можете столкнуться:

У вас есть пользователи, которые управляют разными типами контента

По умолчанию WordPress поставляется с двумя ключевыми общедоступными типами контента: сообщениями и страницами. Но легко добавить больше с помощью пользовательских типов сообщений. Например, вы можете создавать типы сообщений для таких вещей, как пресс-релизы или сотрудников. Кроме того, различные плагины также могут устанавливать свои собственные типы записей.

В крупных организациях может быть несколько разных типов контента, и каждый из них должен управляться конкретными людьми. В этом случае роль пользователя по умолчанию не будет идеальной, так как она может предоставить доступ ко всей партии (или наоборот, в зависимости от вашей настройки). Однако пользовательская роль позволит другим пользователям видеть только те типы сообщений, которые вы им назначаете.

Пользователю нужно сделать всего одну вещь

Бывают случаи, когда пользователю может потребоваться уникальный уровень доступа к функциям вашего веб-сайта. Например, допустим, вы проводите онлайн-курс. У вас может быть член команды, которому нужен доступ ко всему курсу на передней и задней частях, чтобы убедиться, что он работает правильно и что содержание является точным.

Если все, что нужно сделать этому члену команды, — это сосредоточиться на самом курсе, учетная запись администратора может оказаться излишней. С настраиваемой ролью пользователя они могут выполнять свою работу, не пробираясь через ненужные параметры.

Вам нужно «выровнять» существующую роль

Иногда существующая роль пользователя WordPress почти идеальна. Но, возможно, есть еще одна вещь, к которой пользователь должен получить доступ.

Возьмите роль Автора. По умолчанию они могут публиковать посты, но не страницы. Обычно вам нужно поднять пользователя до редактора. Это может быть хорошо в некоторых случаях. Однако могут быть включены и другие возможности, к которым вы не хотите, чтобы этот конкретный пользователь имел доступ. Здесь создание пользовательской роли может быть лучшим вариантом.

Как создать пользовательскую роль пользователя

Существует два разных метода создания пользовательской роли пользователя WordPress. Во-первых, добавьте код в пользовательский плагин или файл functions.php вашей темы. Во-вторых, установив один из множества доступных плагинов, которые позволяют создавать и редактировать роли.

Метод, который вы используете, действительно зависит от личных предпочтений. Если вам нужна возможность визуального выбора пользовательских возможностей, лучше всего использовать плагин. Но если вам удобно работать с кодом и/или вы не хотите, чтобы другие администраторы играли с настройками, вам может подойти добавление фрагмента кода.

В любом случае, мы познакомим вас с несколькими примерами кода, а также набором плагинов.

Во-первых, рекомендуется изучить различные пользовательские возможности, которые предлагает WordPress. Также обратите внимание, что пользовательские типы сообщений также могут иметь свои настраиваемые возможности. Это может пригодиться в первом примере сценария, который мы упоминали выше.

Способ №1: добавьте фрагмент кода

В этом примере мы собираемся создать роль пользователя с именем «Сотрудник». Это включает в себя все возможности роли автора, но с дополнительной возможностью редактировать и публиковать страницы.

Каждая возможность, которую мы назначаем роли, указана во фрагменте ниже и имеет значение « true ». Исключением является то, что мы не хотим, чтобы пользователи с этой ролью удаляли опубликованные страницы, поэтому мы явно устанавливаем значение « false » — на всякий случай.

Опять же, этот код будет помещен в файл functions.php вашей темы или, возможно, в пользовательский плагин.

 /* Create Staff Member User Role */ add_role( 'staff_member', // System name of the role. __( 'Staff Member' ), // Display name of the role. array( 'read' => true, 'delete_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'publish_posts' => true, 'upload_files' => true, 'edit_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_published_pages' => false, // This user will NOT be able to delete published pages. ) );

После того, как мы сохранили этот код и обновили наш веб-сайт в браузере, мы можем добавить нового пользователя с этой ролью.

Экран добавления нового пользователя WordPress.

Когда наш пользователь с ролью Staff Member входит в систему, он может видеть и страницы, и сообщения.

Вошедший пользователь видит сообщения и страницы.

Другой альтернативой может быть простое добавление нескольких возможностей к существующей роли автора. Мы можем сделать это с помощью функции add_cap() :

 /* Upgrade the Author Role */ function author_level_up() { // Retrieve the Author role. $role = get_role( 'author' ); // Let's add a set of new capabilities we want Authors to have. $role->add_cap( 'edit_pages' ); $role->add_cap( 'edit_published_pages' ); $role->add_cap( 'publish_pages' ); } add_action( 'admin_init', 'author_level_up');

Оба этих фрагмента кода, по сути, делают одно и то же. Однако добавление новой роли «Сотрудник» может быть лучше в тех случаях, когда у вас уже есть пользователи с ролью «Автор» и вы не хотите, чтобы у них были дополнительные возможности.

Способ 2: использовать плагин

Описанную выше функциональность можно легко воспроизвести с помощью плагина. Некоторые из них были созданы для этого типа управления ролями пользователей и возможностями. Их преимущество заключается в том, что они используют графический интерфейс и добавляют удобство всему процессу.

Рассмотрим несколько наиболее популярных вариантов:

Редактор ролей пользователей

В редакторе ролей пользователей добавление или удаление возможностей для роли выполняется так же просто, как установка или снятие флажка в настройках. У вас также есть возможность создавать свои собственные пользовательские роли и устанавливать любые необходимые возможности. Плагин также поддерживает мультисайтовые установки WordPress.

Редактор ролей пользователей WPFront

Редактор ролей пользователей WPFront предлагает аналогичные возможности, позволяя добавлять или редактировать роли пользователей. Но это также позволяет администраторам переносить пользователей с одной роли на другую и назначать несколько ролей отдельным пользователям.

Расширенный менеджер доступа

Если вы ищете что-то более широкое, Advanced Access Manager может стать для вас хорошим выбором. Он предлагает управление ролями и возможностями, а также возможность контролировать доступ к внешним и внутренним функциям, таким как меню и виджеты.

Знай свои роли

Возможность создавать собственные роли пользователей — еще одна причина полюбить WordPress. Это что-то очень нишевое, но оно может быть чрезвычайно полезным, когда вам нужно что-то, выходящее за рамки ролей по умолчанию.

Итак, в следующий раз, когда вы окажетесь в ситуации, когда необходим контроль над возможностями пользователя, знайте, что в вашем распоряжении есть этот мощный инструмент.