11 способов восстановления забытого пароля администратора WordPress

Если вы по каким-то причинам не знаете правильный пароль в в админ-панель вашего WordPress-сайта — не беда. Есть много способов, чтобы его сбросить и установить новый.

1. Восстановление пароля по email

Перейдите на страницу входа в админ-панель, обычно она находится по ссылке вида https://site.com/wp-admin, и нажмите на «Забыли пароль?»

wp login page

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

2. Установка нового пароля в phpMyAdmin

Откройте панель управления хостингом/сервером и найдите там пункт phpMyAdmin. Обычно он расположен в разделе Базы данных, MySQL или похожем. В панели cPanel кнопка перехода выглядит так:

phpmyadmin cpanel

Вот где находится ссылка в панели ISPmanager 5:

phpmyadmin ispmanager

И в панели Centos Web Panel:

cwp phpmyadmin

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

Выберите нужную базу и таблицу. Таблица будет называться prefix_user, где вместо prefix_ — значение префикса из файла wp-config.php. По умолчанию используется префикс wp_. Выберите таблицу и напротив нужного вам пользователя нажмите Изменить.

В строке user_pass в поле Значение укажите ваш новый пароль. Обязательно используйте сложную комбинацию, созданную в генераторе паролей. В поле Функция выберите MD5. И нажмите внизу кнопку Вперед.

phpmyadmin reset password

3. Изменение пароля в Softaculous

Данный способ подходит, если вы устанавливали WordPress при помощи автоустановщика скриптов Softaculous. Чтобы установить новый пароль в админ-панель, перейдите в cPanel сайта, раздел Программное обеспечение.

softaculous cpanel

Далее нажмите Installations и выберите редактирование нужной вам установки.

softaculous installations

softaculous edit installation

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

change admin password softaculous

 

4. SQL-запрос в базу данных через phpMyAdmin

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

sql phpmyadmin

В консоль нужно вставить такой код:

UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_login = 'admin'

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

Что делать, если вы забыли не только пароль, но и логин вашей учетной записи? Если вы помните email администратора, то ваш запрос будет таким:

UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_email = 'mymail@gmail.com';

Соответственно подставляете ваш email.

Или вы помните, что номер учетной записи точно первый, то есть вы не назначали главным администратором кого-то другого — в этом случае меняем пароль так:

UPDATE wp_users SET user_pass = MD5('newpass') WHERE ID = 1;

Если случилось так, что все пользователи из таблицы wp_users пропали, или вы случайно удалили пользователя, да мало ли по какой причине это могло произойти, то вы можете создать нового пользователя админ-панели с правами администратора через запросы к БД сайта.

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', 'newuser', MD5('newpass'), 'newuser', 'myemail@gmail.com', '', '2019-03-25 00:00:00', '', '0', 'New User');
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');

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

5. SQL-запрос в базу данных через консоль

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

Итак, нужно подключиться к серверу по SSH и открыть консоль mysql:

~$ mysql -u db_user -p db_name

Имя пользователя и базы укажите свое. Далее введите ваш пароль пользователя.

Чтобы узнать название таблиц в базе данных db_name, используйте команду:

mysql> SHOW TABLES IN db_name;

+---------------------------+
| Tables_in_my_database |
+---------------------------+
| wp_commentmeta |
| wp_comments |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+---------------------------+

Чтобы получить список логинов пользователей из соответствующей таблицы, используйте команду:

mysql> SELECT user_login FROM wp_users;

+----------------+
| user_login |
+----------------+
| test |
| user |
| admin |
+----------------+

Далее для сброса пароля или создания администратора выполните указанные в предыдущем пункте команды.

6. Установка нового пароля в файле wp-login.php

Для этого способа нужен доступ к файлам сайта. Откройте файл wp-login.php в папке сайта любым удобным способом (через диспетчер файлов панели управления сервером, через FTP, SSH и т. д.) В конце файла, после всего кода, добавьте строчку:

wp_set_password('yournewpassword',1);

Вместо yournewpassword укажите ваш новый пароль, вместо 1 можно указать другой ID пользователя админ-панели, если вам нужно установить пароль для не первого пользователя. Сохраните файл и проверьте доступ к панели администратора с новым паролем. Данный способ хорошо подходит, если вы единственный администратор или четко знаете ID восстанавливаемого пользователя.

7. Установка нового пароля в файле functions.php темы сайта

Для этого способа вам необходимо знать включенную для сайта тему. Откройте файл /home/user/public_html/wp-content/themes/your-theme/functions.php любым удобным способом.

/home/user/public_html/ — путь к папке сайта, у вас может быть другой
your-theme — имя вашей темы — поменяйте на свое

Добавьте следующий код в конце файла (вместо newpass пропишите новый пароль) и сохраните:

if( isset($_GET['init_new_pass_set']) && $login = $_GET['init_new_pass_set'] ){
add_action( 'init', function(){
wp_set_password( 'newpass', get_user_by( 'login', $login )->ID );
wp_die( "Пароль пользователя `$login` изменен" );
} );
}

После чего откройте ваш сайт на любой странице и допишите в конец URL ?init_new_pass_set=username , где вместо username — ваш пользователь. Например, можно открыть главную страницу таким образом: http://site.com/index.php?init_new_pass_set=admin

В результате пароль пользователя admin будет изменен на newpass. После получения доступа в админ-панель обязательно уберите данный код из файла functions.php.

8. Авторизация без смены текущего пароля в файле functions.php темы сайта

Если вы не хотите менять текущий пароль пользователя, но при этом необходимо попасть в админ-панель, можно использовать функцию wp_set_auth_cookie().

Код ниже показывает как авторизоваться в качестве администратора, не меняя его пароль. Откройте файл по пути вида /home/user/public_html/wp-content/themes/your-theme/functions.php и добавьте в конце код:

if( isset($_GET['login_as_admin']) ){
add_action( 'init', function(){
$users = get_users([ 'role' => 'administrator' ]);
wp_set_auth_cookie( $users[0]->ID );
} ); 
}

Затем зайдите на любую страницу сайта и допишите в конец URL ?login_as_admin, Например, http://site.com/index.php?login_as_admin. После этого вы автоматически будете авторизованы как администратор.

После использования этого кода его обязательно нужно удалить. Оставлять его небезопасно!

9. Изменение пароля пользователя через WP-CLI

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

Изменить пароль пользователя можно командой wp user update:

wp user update USERNAME --user_pass="PASSWORD"

Здесь замените USERNAME на нужный логин и PASSWORD — на ваш пароль.

Если не помните логин, то получить список пользователей можно командой wp user list:

wp user list
+----+---------------+--------------+---------------------+---------------------+---------------+
| ID | user_login | display_name | user_email | user_registered | roles |
+----+---------------+--------------+---------------------+---------------------+---------------+
| 4 | admin | Alex | alex2201@yandex.ru | 2018-04-24 21:04:24 | administrator |
| 7 | editor_den | Denis | denis@email.com | 2018-06-06 23:30:54 | editor |
| 9 | developer | dev | peter@webstudio.com | 2018-08-11 13:27:09 | developer |
| 8 | editor_vlad | vlad | vladislav65985@mail.ru| 2018-03-26 00:11:48 | editor |
+----+---------------+--------------+---------------------+---------------------+---------------+

10. Скрипт для сброса пароля в админ панель

Данный скрипт позволяет:

  • Если пользователя не существует, создать его и сразу дать права администратора;
  • Если пользователь существует, сменить ему пароль;
  • Назначить пользователя администратором;
  • Если WordPress работает в режиме Multisite, назначить пользователя суперадминистратором сети WordPress MU.

Нужно создать файл в кодировке UTF-8 без BOM (лучше всего используйте программу Notepad++ или подобную) с именем change_admin_password.php или каким угодно другим именем и расширением .php и вставить туда код:

<?php

/**
* Создаём пользователя или изменяем существующего, и наделяем его правами админа и суперадмина
* После использования обязательно удалите или отключите, закомментировав первую строку add_action
*/
add_action( 'init', 'password_update_user' );

function password_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 );
}
}

Можете скачать файл со скриптом по ссылке, распаковать архив и вписать в нужные поля логин и пароль. Затем нужно закачать файл любым удобным способом в папку /home/user/public_html/wp-content/mu-plugins/. Если такой папки нет — нужно ее создать. Конечно, вместо пути /home/user/public_html/ у вас может быть другой.

После установки нового пароля и получения доступа в админ-панель обязательно удалите данный файл!

11. Скрипт Yoast User Manager

Данный скрипт похож на предыдущий, но немного проще в использовании. Вам нужно скачать архив, загрузить распакованный скрипт в папку вашего сайта (/home/user/public_html/) и открыть его имя в браузере, например http://site.com/emergency.php. Далее выберите вариант сброса пароля или создания нового администратора и впишите пароль базы данных. Пароль от базы данных сайта можно найти в файле wp-config.php в корневой папке сайта в строках:

/** MySQL database password */
define( 'DB_PASSWORD', 'some_password' );

yoast user manager

Yoast user manager configuration

Данным скриптом можно, помимо пароля, изменять также права доступа (роль) и другие параметры пользователя. После использования не забудьте удалить файл с папки сайта.

Это были все способы восстановления доступа в админ-панель WordPress, которые нам удалось найти. Выбирайте самый удобный и простой для вас.