Порой возникает ситуация, когда пароль от панели администратора в WordPress забывается или теряется, либо же вы занимаетесь чужим сайтом, и нужно восстановить доступ в админку. Ниже будет рассказано о паре способах, как быстро поменять пароль администратора или пользователя в Вордпресс.
- Самый простой способ сменить пароль админа WordPress, дать права админа и суперадмина
- Как восстановить доступ с помощью phpMyAdmin
- Как изменить пароль существующему пользователю
- Как добавить нового администратора
- Как добавить админа WordPress с помощью SQL
- Как изменить пароль пользователю, если нет доступа к phpMyAdmin
Самый простой способ сменить пароль админа WordPress, дать права админа и суперадмина
Этот способ — самый простой вариант, который позволит:
- Если пользователя не существует, создать его и сразу дать права админа;
- Если пользователь существует, сменить ему пароль;
- Назначить пользователя администратором (administrator);
- Если WordPress работает в режиме Multisite, назначить пользователя суперадминистратором (superadmin) сети WordPress MU.
Создаём строго в кодировке UTF-8 без BOM (например, в Notepad++) mu-plugin (вкратце — /wp-content/mu-plugins/sheensay_change_admin_password.php
), либо пишем в functions.php (в этом случае пропускаем первую строку с ?php
)
<?php /** * Создаём пользователя или изменяем существующего, и наделяем его правами админа и суперадмина * После использования обязательно удалите или отключите, закомментировав первую строку add_action * @link https://sheensay.ru/?p=1452 */ add_action( 'init', 'sheensay_update_user' ); function sheensay_update_user() { // Логин. Меняете на свой $user_login = 'тутлогин'; // Пароль. Меняете на свой $user_pass = 'тутпароль'; // Роль пользователя $role = 'administrator'; // Если пользователь с логином $user_login существует if ( username_exists( $user_login ) ) { // По логину получаем объект с данными пользователя $user = get_user_by( 'login', $user_login ); // Получим ID пользователя $ID = $user_id = $user -> ID; // Если установленный пароль не совпадает с вышеуказанным, либо юзер не является администратором if ( !wp_check_password( $user_pass, $user -> data -> user_pass ) || !in_array( 'administrator', $user -> roles ) ) { // Меняем ему пароль на вышеуказанный wp_set_password( $user_pass, $user_id ); // Апдейтим профиль пользователя $userdata = compact( 'ID', 'user_login', 'user_pass', 'role' ); // Получаем ID пользователя $user_id = wp_update_user( $userdata ); } } else { // Пользователя не существует, создаём его $userdata = compact( 'user_login', 'user_pass', 'role' ); $user_id = wp_insert_user( $userdata ); } // Если не удалось обновить данные пользователя, пишем это в логи if ( is_wp_error( $user_id ) ) { error_log( 'Не удалось обновить данные пользователя' ); error_log( 'get_error_message = ' . $user_id -> get_error_message() ); error_log( 'get_error_code = ' . $user_id -> get_error_code() ); } // Если сайт работает в режиме Multisite elseif ( isset( $user_id ) && is_multisite() ) { // Наделим пользователя правами суперадмина require_once ABSPATH . 'wp-admin/includes/ms.php'; grant_super_admin( $user_id ); } }
Внесите в значение переменной
$user_login
нужный логин,$user_pass
— нужный пароль.
Пароль желательно собрать из букв латиницы разного регистра (больших и маленьких) и цифр. Спецсимволы не используйте, с ними пароль не установится. Когда получите доступ к панели администратора, сможете установить оттуда пароль со спецсимволами.
Теперь пробуйте авторизоваться в панели администратора http://example.com/wp-admin/
с логином и паролем, которые вы указали в соответствующих переменных.
После успешной авторизации в панели админа обязательно сделайте следующее:
- Удалите из
/mu-plugins/
файлsheensay_change_admin_password.php
или вышеуказанный код из functions.php, если не сделали этого ранее; - Смените пароль на сложный, если в
$user_pass
вы указали что-то простое.
Оба пункта выполнять обязательно, так как код создаёт ненужную нагрузку, а простой пароль — потенциальная дыра в безопасности!
Помните, что по статистике большинство взломов сайтов — из-за простого легкоподбираемого пароля
Как восстановить доступ с помощью phpMyAdmin
Имя доступ к phpMyAdmin, можно быстро создать своего пользователя или же изменить пароль от существующего. Для этого вы проводите следующие манипуляции
- Заходите в панель управления phpMyAdmin
- Находите там свою базу данных
- Ищете таблицу
wp_users
и открываете её
Вот тут хочу привлечь ваше внимание. Посмотрите в вашу базу данных, а именно на префиксы таблиц. По умолчанию, таблицы имеют префикс
wp_
. Если у вас он другой, например,rp_
, то и все команды далее вы должны поменять соответственно под ваш префикс везде без исключения, т.е., к примеру, использовать неwp_capabilities
, аrp_capabilities
, и так далее. Если таблиц много, и вы не уверены, какой префикс верный, загляните в файлwp-config.php
в корне вашего сайта, он будет обозначен в конце в переменной$table_prefix = 'wp_';
. Также, будьте внимательны к регистру букв,ABС_capabilities
иabc_capabilities
— это разные таблицы с точки зрения вордпресс
Дальше всё зависит от ваших потребностей: либо у вас уже есть пользователь, и нужно просто изменить ему пароль, либо нужно создать отдельный аккаунт с правами администратора. Как — описано дальше.
Как изменить пароль существующему пользователю
- В таблице
wp_users
находите нужный аккаунт —Изменить
- В открывшемся окне ищем строку
user_pass
. В ней в столбцеФункция
в выпадающем списке надо выбратьMD5
, а в столбцеЗначение
ввести новый пароль
Это всё, пароль изменён, доступ к админке с помощью этого аккаунта восстановлен. Если нет, пройдитесь по всем пунктам внимательнее. Если всё же не помогло — пишите в комментариях, решим вопрос
Как добавить нового администратора
Далее будет инструкция, как добавить нового пользователя с правами администратора. Для этого нам придётся провести 3 несложных запроса к базе данных и, при этом, быть внимательными.
- Открываем таблицу с пользователями
wp_users
. В ней на вкладкеОбзор
мы видим список текущих пользователей.Пока что, у нас только 1 пользователь с логином
admin
иID = 1
- Теперь мы добавим своего нового пользователя с правами админа, так как по тем или иным причинам не можем пользоваться текущим (или его не существует). Придумаем ему логин
test
. ID зададим равным 2, руководствуясь принципом — самый большой ID среди всех пользователей +1.
Переходим на вкладкуВставить
ID
— вводим сюда ID нового пользователяuser_login
— логинuser_pass
— пароль. Не забываем добавить функциюMD5
user_nicename
— никнеймuser_email
— email пользователя. На него приходят уведомленияuser_url
— ссылка на сайт пользователя. Не обязательноuser_registered
— дата регистрации пользователяuser_status
— статус пользователя. Выставляете 0display_name
— отображаемое имя пользователя. На ваш вкус- После заполнения полей отправляете запрос — жмёте
OK
В результате увидите, что запрос успешно выполнен
А в таблице
wp_users
появился наш пользовательНо, не спешите радоваться. Если вы на данном этапе попробуете авторизоваться под свежим аккаунтом, то наткнётесь на ошибку:
У вас недостаточно полномочий для доступа к этой странице.
Это значит, что для данного пользователя не выставлены нужные права. И этим сейчас мы и займёмся. - Переходим в таблицу
wp_usermeta
, вкладкаВставить
и заполняем поля:umeta_id
— оставляем пустымuser_id
— вводим ID нашего пользователя. В моём случае2
meta_key
— вводимwp_capabilities
. Это ключ к правам пользователяmeta_value
— вставляете без измененийa:1:{s:13:"administrator";s:1:"1";}
— это сериализованная строка с правами администратора
- И последний штрих — снова переходим во вкладку
Вставить
таблицыwp_usermeta
umeta_id
— оставляем пустымuser_id
— вводим ID нашего пользователя. В моём случае2
meta_key
— вводимwp_user_level
. Ключ к уровню доступа пользователяmeta_value
— вставляете10
— наивысший уровень
Всё, теперь всё готово, можете авторизовываться в админпанели и пользоваться. Если что-то не сработало — пройдитесь снова по всем пунктам, как правило, проблема кроется в невнимательности. Если всё же не сработало — пишите в комментариях, разберёмся
Как добавить админа WordPress с помощью SQL
Выжимка на SQL для тех, кому лень возиться с phpMyAdmin.
Нужно заменить в тексте db
на имя вашей базы данных, значение ID
на ваше.
По умолчанию, в базу db
с префиксом таблицwp_
будет добавлен администратор под ником и логином test
, ID=2
и паролем 111
INSERT INTO `db`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('2', 'test', MD5('111'), 'test', '[email protected]', '', '2016-04-25 00:00:00', '', '0', 'Test'); INSERT INTO `db`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '2', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}'); INSERT INTO `db`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '2', 'wp_user_level', '10');
Как изменить пароль пользователю, если нет доступа к phpMyAdmin
Если есть доступ к SSH или FTP, но нет к phpMyAdmin, вы можете воспользоваться следующим вариантом.
Открываете каталог (если не существует, создаёте) /wp-content/mu-plugins/
. (Подробнее про mu-plugins и WordPress MU)
В нём создаёте файл с любым названием, например, change_password.php
, а внутрь этого файла записываете код
<?php add_action( 'init', 'sheens_set_new_password' ); function sheens_set_new_password() { $_ = get_user_by( 'login', 'логин' ); // тут вы записываете логин пользователя, которому нужно жёстко прописать пароль wp_set_password( 'пароль', $_->ID ); // тут вы записываете новый пароль }
Не забудьте сменить логин и пароль на Ваши
После этого сохраняете всё и авторизуетесь на сайте под этим пользователем.
Как только вам удалось авторизоваться после этой манипуляции, тут же удалите файл
change_password.php
, так как он будет создавать ненужную нагрузку на сайт, сбрасывая пароль при каждом посещении сайта.
Свежие комментарии