Вспомнить забытый пароль WordPress — 8 способов

  В WordPress можно восстанавливать и изменять пароль пользователя, если у вас есть доступ к email пользователя или вы уже авторизованы. А как поменять (установить пароль) любому пользователю если вы не знаете пароль администратора? Ниже рассмотрим разные варианты изменения пароля для разных ситуаций.
Главное помните — всегда нужно указывать надежный пароль!
Узнать пароль пользователя WordPress невозможно, потому что пароли хранятся в БД в закодированном виде (в виде хэша) и единственный способ узнать пароль по хэшу — это его угадать. Такой подбор паролей называется Брут-форс.
Пароль хранится в базе данных в поле user_pass таблицы wp_users.

Авторизация — PHP

Чтобы не изменять пароль пользователя, но при этом попасть в админку, можно использовать функцию wp_set_auth_cookie().
Код ниже показывает как авторизоваться в качестве администратора не меняя его пароль.
Вставьте код в файл темы functions.php. Затем зайдите на любую страницу сайта и допишите в конец URL ?login_as_admin. После этого вы автоматически будите авторизованы как администратор.
if( isset( $_GET['login_as_admin'] ) ){
  add_action( 'init', function(){
    $users = get_users( [ 'role' => 'administrator' ] );
    wp_set_auth_cookie( $users[0]->ID );
  });
}
После использования этого кода, его обязательно нужно удалить!

Смена пароля — профиль в админке

Если вы авторизованы, то пароль можно изменить на странице профиля Пользователи → Ваш профиль. Если вы при этом еще и администратор, то пароль можно изменить любому пользователю, перейдя в редактирование пользователя со страницы Пользователи → Все пользователи.

Смена пароля — email (восстановление пароля)

Если вы забыли пароль, но у вас есть доступ к email пользователя, то пароль можно восстановить. Для этого нужно:
  1. Перейти на страницу Входа: /wp-login.php.
  2. Кликнуть по ссылке «Забыли пароль?».
  3. Ввести email или имя пользователя, пароль для которого нужно восстановить.
  4. Перейти по ссылке на восстановление пароля, полученной на email (если указали имя пользователя, то нужно проверить email соответствующий имени пользователя).
  5. Ввести новый пароль в форме на которую вы попали кликнув по ссылке в письме.
  6. Войти на сайт используя новый пароль.

Смена пароля — phpMyAdmin

Почти все хостинг провайдеры предоставляют доступ к phpMyAdmin — панель управления базой данных.
Там установить пароль любого пользователя очень просто. Для этого нужно зайти в таблицу wp_users и нажать «редактировать» (иконку карандаша) рядом с пользователем, пароль которого хотите поменять. В результате вы увидите такую форму:

Измените хэш код в поле user_pass на новый пароль. И обязательно укажите MD5 для установленного значения (так введенный текстовый пароль будет захэширован и WP сможет его потом «распознать»).
Заметка: при первой авторизации MD5 хэш автоматически будет изменен на более надежный хэш, который используется в вашей версии WordPress.

Смена пароля — MySQL

Для установки нового пароля можно использовать SQL запрос.
Пример ниже, показывает как изменить пароль администратора WordPress, зная его логин. Тут новый пароль будет — newpass, а логин администратора — admin:
UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_login = 'admin'
Если вдруг вы забыли логин, но точно помните, что вы были первым юзером на блоге, а значит ваш ID равен 1, то можно сбросить пароль по ID — WHERE ID = 1:
UPDATE wp_users SET user_pass = MD5('newpass') WHERE ID = 1;
Или можно изменить пароль зная email юзера:
UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_email = 'adminko@gmail.com';
MD5(‘newpass’) = e6053eb8d35e02ae40beeeacef203c1a

Пример запуска MySQL запроса из консоли

Для начала нужно зайти в консоль и подключиться к БД, такой командой:
mysql -u USERNAME -pPASSWORD -h HOST_NAME_OR_IP DATABASE_NAME
или без указания хоста (если вы работает в консоли из среды самого хостинга)
mysql -u USERNAME -pPASSWORD DATABASE_NAME
Далее, нужно запустить вышеупомянутый запрос, так:
mysql> UPDATE wp_users SET user_pass = MD5('newpass') WHERE user_login = 'admin';
Чтобы узнать название таблиц в базе данных my_database, используйте команду:
mysql> SHOW TABLES IN my_database;

+---------------------------+
| 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     |
+----------------+
| abalak         |
| AbamFaw        |
| admin          |
+----------------+

Смена пароля — PHP

Новый пароль можно установить PHP кодом, с помощью функции wp_set_password().
Вставьте следующий код в файл темы functions.php. Затем зайдите на любую страницу сайта и допишите в конец URL ?init_new_pass_set=anton.
В результате пароль пользователя anton будет изменен на newpass.
if( isset( $_GET['init_new_pass_set'] ) && $login = $_GET['init_new_pass_set'] ){
  add_action( 'init', function() use ( $login ){
    wp_set_password( 'newpass', get_user_by( 'login', $login )->ID );
    wp_die( "Пароль юзера `$login` изменен" );
  } );
}
После использования этого кода, его обязательно нужно удалить!

Смена пароля — WP-CLI

Установить пароль пользователя можно командой wp user update.
Этот пример показывает как для пользователя с логином USERNAME установить пароль PASSWORD:
wp user update USERNAME --user_pass="PASSWORD"
Получить список пользователей (чтобы узнать логин) можно командой wp user list:
wp user list

+----+---------------+--------------+---------------------+---------------------+---------------+
| ID | user_login    | display_name | user_email          | user_registered     | roles         |
+----+---------------+--------------+---------------------+---------------------+---------------+
| 4  | aleksej-nnn   | Alex         | alsey119@yandex.ru  | 2018-04-24 21:04:24 | administrator |
| 7  | denis         | Denis        | deis@denis.pro      | 2018-06-06 23:30:54 | subscriber    |
| 9  | shk_user      | shk_user     | sheer@qsologies.com | 2018-08-11 13:27:09 | subscriber    |
| 8  | vladlu        | vladlu       | spata@famail.com    | 2018-03-26 00:11:48 | editor        |
+----+---------------+--------------+---------------------+---------------------+---------------+

Сброс паролей — WP-CLI

Можно установить авто-сгенерированные пароли для указанных пользователей, для этого есть команда wp user reset-password.
Этот пример показывает как сбросить пароль для двух пользователей и отправить им сообщение о том что пароль был изменен.
wp user reset-password admin editor
  Reset password for admin.
  Reset password for editor.
  Success: Passwords reset.
Пользователь в результате получит сообщение на почту 🙂