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, які нам вдалося знайти. Вибирайте найзручніший і найбільш простий для вас.