Пять способов изменить пароль в WordPress — WP Magazine
Ваш пароль в WordPress — это ключ к вашему сайту. Как и любые другие ключи, пароль можно забыть или потерять. В этой статье мы рассмотрим пять способов смены пароля в WordPress, которые помогут вам восстановить доступ к вашему сайту в случае потери пароля, адреса электронной почты, и даже если вы стали жертвой взлома.
Изменение пароля через профиль пользователя
Изменить пароль в WordPress вы можете через настройки профиля пользователя. После того как вы выполнили вход в панель администрирования WordPress, зайдите в меню Пользователи → Ваш профиль
и найдите раздел Новый пароль
. Здесь вы можете задать новый пароль для текущего пользователя.
Изменение пароля через профиль пользователя
Если вы являетесь администратором сайта, то вы можете так же сменить пароль для другого пользователя, выбрав его в меню Пользователи → Все пользователи
. Обратите внимание на шкалу надёжности, которая поможет вам выбрать более длинный и надёжный пароль.
Данный метод является самым простым и удобным, но к сожалению не применимым в тех случаях, когда вы не можете выполнить вход в панель управления WordPress. К счастью есть и другие варианты, не требующие входа.
Восстановление пароля в WordPress
Если вы забыли пароль от вашего сайта на WordPress, то вы можете восстановить его по электронной почте. В форме входа (по адресу /wp-login.php) вы можете щёлкнуть ссылку «Забыли пароль» и ввести адрес электронной почты вашего пользователя или имя пользователя.
В течение нескольких минут на вашу электронную почту придёт письмо со специальной ссылкой для восстановления пароля. При переходе по этой ссылке, вам будет представлена форма, где вы сможете ввести новый пароль для вашего пользователя. Так же как и в первом методе, вам будет представлен индикатор надёжности пароля.
Восстановление пароля WordPress
Если у вас нет доступа к электронной почте пользователя или если по какой-либо причине не работает отправка электронной почты с вашего сервера, то вам придётся воспользоваться другим методом.
Изменение пароля с помощью phpMyAdmin
Большинство хостинг-провайдеров предоставляют доступ к phpMyAdmin — это утилита для работы с базами данных MySQL, где WordPress хранит всю информацию о своих пользователях. Если вы не можете зайти в phpMyAdmin, советуем обратиться за помощью к вашему хостинг-провайдеру, или же попробовать другой способ смены пароля.
После того как вы выполнили вход в phpMyAdmin, найдите базу данных вашего сайта и выберите её в панели слева. Её легко распознать по наличию таблиц wp_posts, wp_postmeta, wp_comments, wp_commentmeta, wp_users, wp_usermeta и т.д. Учтите, что префикс может отличаться.
Здесь нас интересует таблица wp_users
. После того как вы её откроете, вы увидите список всех пользователей вашего сайта. Выберите того пользователя, чей пароль вы хотите изменить и щёлкните кнопку «редактировать». Вам будет представлена форма редактирования пользователя.
Редактирование пользователя в phpMyAdmin
Поле user_pass
отвечает за пароль выбранного пользователя. Для смены пароля очень важно выбрать функцию MD5
из выпадающего списка для поля user_pass, и затем ввести новый пароль в значении поля.
После сохранения изменений вы сможете выполнить вход в панель администрирования WordPress используя ваш новый пароль. Учтите, что изменив пароль в phpMyAdmin, вы не увидите его в открытом виде в таблице wp_users, поскольку WordPress хранит все пароли в зашифрованом виде.
Изменение пароля с помощью консоли MySQL
Если ваш хостинг провайдер не предоставляет пакет phpMyAdmin, то вы можете попытаться подключиться к вашей базе данных MySQL используя клиент MySQL через командную строку. Этот способ является более продвинутым и не рекомендуется новичкам.
Подключившись к серверу через SSH, выполните вход на сервер MySQL через командную строку, заменив значения username и password (а так же localhost, если вы подключаетесь к удалённой базе данных):
mysql -uusername -ppassword -hlocalhost
Если вам удалось подключиться, то так же как и в предыдущем способе, вам нужно найти вашу базу данных WordPress. Вы можете это сделать используя команды SHOW DATABASES:
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | wordpress | +--------------------+
Командой SHOW TABLES можно получить список всех таблиц определённой базы данных:
mysql> SHOW TABLES IN wordpress; +------------------------------+ | Tables_in_wordpress | +------------------------------+ | wp_commentmeta | | wp_comments | | wp_links | | wp_options | ...
После того, как вы нашли интересующую вас базу данных, выберите её командой USE, и выведите список всех пользователей:
mysql> USE wordpress; Database changed mysql> SELECT user_login FROM wp_users; +---------------+ | user_login | +---------------+ | admin | | kovshenin | ...
Определив имя пользователя чей пароль вы хотите изменить, используйте команду UPDATE для смены пароля. Так же как и с phpMyAdmin, здесь необходимо воспользоваться функцией MD5 при вводе нового пароля:
mysql> UPDATE wp_users SET user_pass = MD5('newpassword') WHERE user_login = 'kovshenin'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
После выполнения данного запроса вы сможете выполнить вход в панель администрирования WordPress, используя ваш новый пароль.
При работе с запросами MySQL стоит быть предельно осторожным. Забыв например часть «WHERE…» в предыдущем запросе, вы измените пароли для всех пользователей и отменить это действие нельзя. Мы рекомендуем сделать резервную копию базы данных прежде чем начинать работу с консолью MySQL.
Изменение пароля с помощью PHP файла
Когда другие методы не являются доступными, пароль в WordPress можно изменить с помощью простого PHP файла. Для данного способа вам понадобится доступ к FTP серверу, где хранится ваш сайт. Создайте новый PHP файл с произвольным именем (например password-recovery.php) и следующим содержанием:
add_action( 'init', 'my_password_recovery' ); function my_password_recovery() { $user = get_user_by( 'login', 'my-username' ); wp_set_password( 'my-new-password', $user->ID ); }
Данный код находит в базе данных пользователя с заданным именем пользователя, и изменяет его пароль. Не забудьте заменить значения my-username и my-new-password на ваше имя пользователя и пароль.
После этого откройте ваш FTP клиент и подключитесь к серверу вашего сайта. В директории где установлен WordPress найдите папку wp-content и зайдите в неё. Найдите директорию mu-plugins
(не путайте с директорией plugins). Если директория mu-plugins не существует — создайте её. Загрузите в директорию mu-plugins созданный вами PHP файл.
Конечный путь до файла должен выглядеть примерно так: wordpress/wp-content/mu-plugins/password-recovery.php
После того как вы загрузили ваш файл, вы сможете выполнить вход в административную панель WordPress используя пароль, который вы указали в вашем PHP файле.
И наконец, не забудьте снова зайти в вашу директорию mu-plugins и удалить созданный вами файл
password-recovery.php. Если вы этого не сделаете, WordPress будет изменять пароль при каждом посещении вашего сайта, что существенно снизит скорость его работы.
Хотим так же напомнить, что слабый пароль является самой распространённой причиной взлома сайтов. Подробнее вы можете почитать в нашей статье о безопасности в WordPress.
Если вам не подошёл ни один из выше перечисленных способов для смены пароль, оставьте комментарий, и мы обязательно постараемся вам помочь.
Как восстановить пароль администратора в WordPress
Порой возникает ситуация, когда пароль от панели администратора в WordPress забывается или теряется, либо же вы занимаетесь чужим сайтом, и нужно восстановить доступ в админку. Ниже будет рассказано о паре способах, как быстро поменять пароль администратора или пользователя в Вордпресс.
Самый простой способ сменить пароль админа 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
)
/** * Создаём пользователя или изменяем существующего, и наделяем его правами админа и суперадмина * После использования обязательно удалите или отключите, закомментировав первую строку 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
находите нужный аккаунт —Изменить
Список пользователей WordPress
- В открывшемся окне ищем строку
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
, а внутрь этого файла записываете код
add_action( 'init', 'sheens_set_new_password' ); function sheens_set_new_password() { $_ = get_user_by( 'login', 'логин' ); // тут вы записываете логин пользователя, которому нужно жёстко прописать пароль wp_set_password( 'пароль', $_->ID ); // тут вы записываете новый пароль }
Не забудьте сменить логин и пароль на Ваши
После этого сохраняете всё и авторизуетесь на сайте под этим пользователем.
Как только вам удалось авторизоваться после этой манипуляции, тут же удалите файл
change_password.php
, так как он будет создавать ненужную нагрузку на сайт, сбрасывая пароль при каждом посещении сайта.