2 простых способа создания пользовательских ролей в WordPress

Приветствую!

Сегодня я бы хотел рассказать вам как создавать пользовательские роли для пользователей в WordPress. Мы рассмотри два варианта — добавим код в ручную и с помощью плагина.

WordPress, являясь самой популярной CMS в мире, предоставляет широкий спектр настраиваемых функций для своих миллионов пользователей (около 172 миллионов пользователей согласно опросу NetCraft).

Одной из его полезных функций является расширение ролей пользователя WordPress. Как вы знаете, WordPress предоставляет 6 предопределенных пользовательских ролей, которые распределяются между людьми в зависимости от их важных ролей в поддержке сайта.

Ко мне часто поступают вопросы про хостинг, которым я пользуюсь и поэтому решил указать хостинг в статье https://sprinthost.ru. Вы можете попробовать попользоваться хостингом 30 дней бесплатно. Чтобы понять, как будет работать Ваш сайт на этом хостинге просто перенести свой сайт (в этом поможет поддержка хостинга бесплатно) и и таким образом сможете понять подходит хостинг Вам или нет. На этом хостинге находятся сайты с 20 000 тысяч посещаемость и сайты чувствуют себя отлично. Рекомендую! Да, если делать оплату на 1 год то получаете скидку 25%. И что мне нравится - тех. поддержка всегда помогает в технических вопросах, за что им спасибо. Как Вы понимаете не всегда проходит всё гладко и нет желания, чтобы сайт не был доступен тем самым страдал трафик и доход.

Однако большинство владельцев сайтов WordPress не знакомы с тем фактом, что они могут создавать пользовательские роли в дополнение к фиксированным ролям, предоставляемым самим WordPress.

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

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

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

Однако в этой статье вы получите руководство о том, как создавать настраиваемые роли пользователей WordPress и как назначать их своим пользователям. Давайте начнем.

Роли и возможности пользователей

Роли и возможности пользователей

Роль пользователя — это комбинация двух терминов:

  1. Роль
  2. Возможность

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

Вместе они составляют роль пользователя.

Как правило, WordPress имеет 6 ролей пользователя по умолчанию:

  1. Администратор: высший профиль, который имеет доступ ко всем видам административной деятельности на вашем сайте WordPress. Когда вы создаете веб-сайт, WordPress по умолчанию устанавливает ваш профиль в качестве администратора.
  2. Редактор: этот профиль пользователя может создавать/редактировать/публиковать свои и чужие публикации. Он отвечает за управление общим контентом сайта WordPress.
  3. Автор: пользователь, которому назначена эта роль, может создавать сообщения, редактировать эти сообщения и управлять комментариями только в своих собственных сообщениях.
  4. Участник: эта роль позволяет пользователю создавать/редактировать собственные записи, делать черновики, но не публиковать их. Обычно эта роль указывает на то, что пользователь, вероятно, является внешним автором для вашего блога.
  5. Подписчик: роль подписчика позволяет управлять только собственным профилем пользователя. Эта роль позволяет пользователям только читать и комментировать посты.
  6. Super Admin: роль, которая применима только при использовании функции WordPress multisite. Эта роль пользователя назначается для управления сетью всех сайтов и пользователями в многосайтовой сети. Он также может создавать/удалять или обновлять сеть и многое другое.

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

Создание пользовательской роли пользователя в WordPress

Есть два способа создать свою собственную пользовательскую роль.

  1. С помощью пользовательских кодов
  2. Через плагины

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

1. Создание пользовательских ролей WordPress с помощью пользовательских кодов

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

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

Создание пользовательской роли пользователя:

Шаг 1. Сначала на панели инструментов перейдите во «Внешний вид — Редактор».

Шаг 2: С правой стороны, в разделе «Внешний вид — Редактор», нажмите «Функции темы».

Шаг 3: На странице будет показан код из файла functions.php. Прокрутите вниз до нижней части страницы. В конце вам нужно добавить код в следующем формате:

variable = add_role( '$role', __( '$display_name' ), array($capabilities));

В моем случае код выглядит так:

    $result = add_role( // $result является переменной
    'basic_reader', // basic reader - это имя назначенной $role
    __( 'Basic Reader' ), // Basic Reader назначенный $display_name
    array( // array список $capabilities для этой роли
    'read' => true, // Дает роли пользователя возможность читать сообщения.
    'edit_posts'  => true, // Дает роли пользователя возможность редактирования.
    'delete_posts'  => false,// Запрещает роли пользователя удалять записи.
)
);

** Настоятельно рекомендуется использовать дочернюю тему для применения настроек, так как любые внесенные изменения могут быть не сохранены в случае, если разработчик обновит тему. В моем случае я использовал тему ‘Twenty Thirteen Child’. Если вы забыли активировать дочернюю тему, ее можно отредактировать отсюда. В правом верхнем углу, в разделе ‘Выберите тему для редактирования’, вы можете выбрать нужную дочернюю тему и продолжить редактирование.

Ваш файл functions.php должна выглядеть примерно так:

Ваш файл functions.php

После ввода этого кода нажмите «Обновить» внизу. И ваша пользовательская роль будет создана.

Шаг 4: Затем назначьте эту пользовательскую роль пользователю. Сначала перейдите в «Пользователи — Все пользователи».

Более того, если вы хотите назначить эту роль существующему пользователю, просто выберите пользователя, которого хотите назначить, и измените роль.

Затем назначьте эту пользовательскую роль пользователю

Вы также можете создать нового пользователя для этой роли. Нажмите «Добавить нового».

Добавить нового

Заполните необходимую информацию и выберите роль, которую вы только что создали. В моем случае это «Basic Reader».

выберите роль

Нажмите «Добавить нового пользователя».

Таким образом, новый пользователь готов с набором возможностей, которые вы для него определили.

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

Изменяем возможности роли пользователя:

Для существующей роли пользователя, если вы хотите добавить или удалить возможности, вам нужно следовать предыдущему коду, но вместо назначения возможностей в массиве, вам необходимо включить следующий формат кода:

1. Добавить возможность:

    $role = get_role ('basic_reader'), // 'basic_reader' - это имя $role, а не отображаемое имя.
    $role -> add_cap ('install_plugins'), // add_cap добавляет возможность установки плагинов

2. Удалить возможность:

    $role = get_role ('basic_reader'),
    $role -> remove_cap ('read'), // remove_cap удаляет возможность 'read'

** Функция «get_role» извлекает список возможностей роли пользователя. В этом случае он извлечет возможности роли ‘basic_reader’.

Код будет выглядеть так:

    $result = add_role(
    'basic_reader',
    __( 'Basic Reader' ),
    array(
    $role = get_role( 'basic_reader' ),
    $role->add_cap( 'install_plugins' ),
    $role = get_role( 'basic_reader' ),
    $role->remove_cap( 'read' ),
    )
    );

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

Удаляем роль пользователя по умолчанию:

Допустим, нам нужно удалить роли «Подписчик» и «Автор» из панели пользователя.

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

    remove_role( 'subscriber' ); // 'subscriber' - это имя $role
    remove_role( 'author' ); // 'author' - это имя $role

Затем обновите сайт и роли будут удалены. Вы можете перейти в «Пользователи — Все пользователи» и проверить, что выбранные вами роли пользователя были удалены.

2. Создание пользовательских ролей WordPress через плагин:

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

Некоторые популярные из них: WPFront User Role Editor, Members, User Role Editor, и Advanced Access Manager.

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

Следовательно, вот пример того, как вы можете создать пользовательскую роль пользователя с помощью плагина «User Role Editor».

Шаг 1: Во-первых, перейдите в «Плагины — Добавить новый» на панели инструментов. Найдите и выберите «User Role Editor». Установите и активируйте его.

Шаг 2. Во-вторых, перейдите в раздел «Пользователи» на панели инструментов. Там вы увидите новую вкладку под названием «User Role Editor».

User Role Editor

Нажмите на него, и появится следующая страница:

Нажмите на него

Здесь вы найдете все возможности, организованные в группы в соответствии с их назначением. Например, если вы нажмете «Темы», вы увидите шесть возможностей, связанных с «Темами».

Шаг 3: Как я уже говорил ранее, для добавления роли требуется три информации. С правой стороны нажмите «Добавить роль».

Добавить роль

Однако для этого потребуются две конкретные данные: имя роли (ID) и отображаемое имя роли.

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

Шаг 4: После того как вы создали новую роль пользователя, теперь вы можете выбрать функции, которые хотите назначить, и нажать «Обновить» с правой стороны. Таким образом, ваша новая роль пользователя готова с назначенными возможностями.

Шаг 5: Наконец, вернитесь в панель «Все пользователи» и выберите пользователя, которому вы хотите назначить новую роль.

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

И в заключении

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

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

Поскольку я регулярно пишу самые интересные факты о WordPress, следите за моим блогом, чтобы не пропустить ни одного факта))).

До скорых встреч!


Обо мне
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Ранее работал в нескольких веб-студиях и решил делиться своим опытом на данном сайте. Пишите комментарии, буду рад общению.
2 комментария к статье "2 простых способа создания пользовательских ролей в WordPress"
  1. Юрич: 28.01.2020 в 14:13

    Здравствуйте!
    Этим обычно занимается плагин. Кодом вам придется много прописывать проверок — тали это рубрика, разрешено ли ее редактировать, разрешен ли к ней доступ этому пользователю.
    Мне кажется что лучше сделать плагином.
    Вот еще как вариант, но скорее это как пример а не решение: https://wp-kama.ru/function/add_role

  2. Серж: 28.01.2020 в 14:06

    Здравствуйте. Подскажите как можно кодом добавить возможность определенному пользователю редактировать определенную рубрику или несколько назначенных ему одному Рубрик (Категорий). Спасибо…

Заказать сайт