Как изменить роль пользователя в Вордпресс
Рассказываю, как не имея прав администратора редактировать роли пользователей в Вордпресс. Сразу оговорюсь, что это не способ взлома, а скорее производственная необходимость.
Да-да — производственная необходимость, потому что заказчики иногда мудрят с доступами, и проще самому настроить себе нужную для работы роль, чем объяснять зачем мне это нужно и как это сделать. Кстати, как добавить админа в Вордпресс без доступа в админку я уже рассказывал. Эта история из той же оперы.
С правами администратора
С этим все просто.
Имея доступ к админке и соответствующие права администратора роль любого пользователя меняется привычным всем способом.
Открываем раздел «Пользователи»
Наводим курсор на нужного пользователя и нажимаем «Изменить», в профиле пользователя выбираем нужную роль и все.
Без прав администратора
С этим сложнее.
Потому что в Вордпресс роли пользователей может редактировать только администратор. То есть, если вы подписчик, редактор или ещё кто-нибудь, у вас такой возможности нет.
Для изменения ролей я пользуюсь двумя способами: путём прямого изменения метаданных пользователя в БД или с помощью стандартной функции Вордпресс wp_update_user()
.
Первый способ сложнее, требует более глубоких знаний, доступа к SSH или PMA. И в целом более рискованный, потому что высока доля вероятности сломать сайт. Чтобы потом в меня не кидали камни, я на нем останавливаться не буду. А вот для второго способа потребуется только ФТП, рисков там минимум, его мы и рассмотрим.
Первое, что нужно сделать — это узнать ID пользователя, роль которого будем менять.
Для этого достаточно в списке пользователей (на скрине выше) навести курсор на нужного пользователя и в строке состояния браузера появится URL, в котором можно обнаружить user_id
. В нашем примере user_id=3
.
Если вы меняете свою роль, в строке состояния user_id
не отобразится. В этом случае можно просто выполнить в любом исполняемом файле активной Вордпресс-темы (например, в footer.php
) функцию get_current_user_id()
, которая выведет user_id
текущего пользователя:
echo get_current_user_id();
Имея ID пользователя таким же образом добавляем в любой исполняемый файл темы (header.php
, footer.php
, functions.php
, etc) или плагин такой код:
wp_update_user( [ 'ID' => '12345', 'role' => 'administrator' ] );
Где ID
— это полученный user_id
, а role
— роль, которую нужно установить пользователю.
Основные роли пользователей в Вордпресс:
- administrator
- editor
- author
- contributor
- subscriber
После добавления кода, нужно открыть любую страницу сайта. Код исполнится, после этого его нужно обязательно удалить.
Фулстек веб‑разработчик, специализируюсь на платформе WordPress
Подробнее