Что делать, если не получается зайти в админку WordPress

Всем привет! За долгое время работы с WordPress я неоднократно сталкивался с ситуациями, когда дают в поддержку сайт, а админские доступы к нему утеряны и не получается зайти в админку WordPress. Как быть в таком случае? В этой статье я дам наиболее адекватные варианты решения этой проблемы.

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

Такой вариант часто встречается, когда в поддержку даётся legacy-проект. Что делать, когда не получается зайти в админку WordPress, а доступ к панели управления хостингом есть:

  • в панели управления надо найти любое средство для управления базой данных. Как правило, это phpMyAdmin.
  • зайти в phpMyAdmin, предварительно выбрав базу данных, на которой развёрнут WordPress.

Имя базы данных можно найти в файле wp-config.php, расположенном в корневом каталоге сайта, в блоке define('DB_NAME', 'some_name'), где второй параметр и есть искомое имя БД

После того, как база открыта в phpMyAdmin, заходим в таблицу wp_users, где видим список всех пользователей сайта.

Кликаем по чекбоксу напротив имени пользователя, и кликаем по кнопке изменить чуть ниже

Появится окно, в котором можно отредактировать пароль пользователя. Не забываем поставить шифрование MD5, оно используется WordPress по умолчанию. Чтобы сохранить изменения, кликаем по кнопке "Вперёд":

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

Вариант 2. Не получается зайти в админку WordPress, нет доступа к Панели Управления хостингом, но есть ssh доступ к хостингу

Этот вариант чуть сложнее, потому что надо уметь работать с консолью и знать команды для работы с MySQL. Часто логин и пароль для SSH доступа совпадает с логином и паролем для доступа по SFTP. Если нет - надо попросить владельца хостинг-аккаунта дать такой доступ.

Для начала необходимо подключиться к хостингу по SSH. Для этого в терминале (я обычно использую терминал Git Bash или WSL) вводим команды:

ssh username@host_ip_addr

где username, host_ip_addr - соответственно логин и ip адрес хостинга

Потом в терминале надо перейти в каталог сайта и посмотреть реквизиты для подключения к БД, на которой развёрнут WordPress:

cd website/public_html && sudo nano wp_config.php

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

mysql -u username database_name

где username, database_name - соответственно имя пользователя и имя БД

Далее, если вы хотите добавить нового пользователя WordPress с правами администратора, надо ввести такие команды

INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`) VALUES ('admin', MD5('supersecretpassword'), 'admin', 'admin@youremail.com', '0');

  
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users),
'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

  
INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');

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

select * from wp_users; # выбираем всех пользователей, ищем нужного нам, у которого хотим поменять пароль
update wp_users set user_pass=MD5('super-password') where user_login='user_name';

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

Вариант 3. Если на сайте установлен некий защитный плагин, и описанные выше действия не помогают

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

  • получить FTP доступ на сайт
  • подключиться к FTP через любой доступный клиент
  • зайти в каталог сайта и перейти в папку wp-content/plugins. Далее там ищем название плагина, любое, где есть слово security, cerber и проч., и просто переименовываем папку.

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

Вот такая вот небольшая статья получилась. Надеюсь, кому-то она будет полезной и поможет справиться с проблемой утерянных доступов к сайту на WordPress. С вами был webmaster_zotov, до новых встреч!