這裡介紹各種重新設定 WordPress 網站登入密碼的方法。

如果忘記了自己 WordPress 網站的登入密碼,可以透過 Email 的方式自動重新設定,但如果 Email 的方式行不通,也還有許多種其他的解決方式,以下介紹各種重設密碼的方式,請選擇自己比較喜歡的方法來使用。

MySQL/MariaDB 指令重新設定密碼

Step 1
在 Linux 命令列中,將新的密碼轉為 MD5 的雜湊(hash)字串:

echo "my_password" | tr -d '\r\n' | md5sum

這裡的 my_password 就是新的密碼,請替換為自己的新密碼,而經過 md5sum 計算之後,會產生類似這樣的雜湊字串:

a865a7e0ddbf35fa6f6a232e0893bea4  -

這一行輸出文字有兩個欄位,第一欄就是我們要的密碼雜湊字串,而第二欄則是檔案名稱(因為這裡是從標準輸入讀取資料的,所以檔名會以 - 表示)。請將這裡第一欄的密碼雜湊字串複製起來,後面會用到。
Step 2
使用 root 管理者帳號(或是有權限寫入 WordPress 資料庫的帳號)登入 MySQL/MariaDB 資料庫:

mysql -u root -p

Step 3
列出所有的資料庫,找出用於儲存 WordPress 網站資料的資料庫:

show databases;

找到自己 WordPress 網站用的資料庫之後,選擇之(這裡我的資料庫名稱為 blog):

use blog;

Step 4
列出自己的資料表:

show tables;

尋找儲存使用者帳號的資料表,其名稱會以 users 結尾(這裡我的資料表為 wp_users)。

接著把 IDuser_loginuser_pass 這幾個欄位輸出來看一下:

SELECT ID, user_login, user_pass from wp_users;
+----+------------+------------------------------------+
| ID | user_login | user_pass                          |
+----+------------+------------------------------------+
|  1 | gtwang     | $P$qBpIvOiMyT1pm9vIPAs24tuyHs4KW91 |
+----+------------+------------------------------------+

這些就是目前 WordPress 網站上所有的帳號與密碼,請確認要重新設定密碼的帳號 ID,以這個例子來說我要重新設定 gtwang 這個帳號,其 ID 為 1
Step 5
將此帳號的密碼欄位設定為之前產生的 MD5 雜湊字串:

UPDATE wp_users SET user_pass="a865a7e0ddbf35fa6f6a232e0893bea4" WHERE ID = 1;

這樣就完成密碼的重設了,接著就可以開啟 WordPress 網頁,以新密碼登入。

以 phpMyAdmin 重新設定密碼

如果您的網頁空間有提供 phpMyAdmin 的 MySQL 管理介面,也可以從 phpMyAdmin 中來修改 WordPress 使用者的密碼,修改原則跟指令的方式差不多。

Step 1
登入自己的 phpMyAdmin 管理介面之後,選擇儲存 WordPress 網站的資料庫,從中尋找使用者帳號的資料表(名稱以 users 結尾的資料表)。

phpMyAdmin

找到使用者資料表之後,從中尋找要重新設定密碼的帳號,接著點選「編輯」。

Step 2
修改 user_pass 這個儲存密碼的欄位,在「函數」的部分要選擇「MD5」,然後在值的部分填入自己設定的新密碼。

phpMyAdmin

Step 3
點選「執行」。

phpMyAdmin

這樣就完成密碼的重新設定了。

透過 FTP 重新設定密碼

Step 1
以 FTP 連線軟體(例如 FileZilla)連線至 WordPress 網站的網頁空間,將目前佈景主題的 functions.php 抓下來,然後在這個 PHP 檔案中加入一行:

wp_set_password('my_password', 1);

wp_set_password 第一個參數是新的密碼,而第二個參數則是使用者的 ID。
修改好之後,再將這個檔案放回原來的地方,把舊的檔案蓋掉。
Step 2
以新密碼登入 WordPress 網站。

Step 3
復原 functions.php,移除剛剛加上去的 wp_set_password

使用 WP-CLI 重新設定密碼

WP-CLI 是一個指令介面的 WordPress 管理工具,我們可以用 WP-CLI 來重新設定使用者的密碼。

列出所有 WordPress 網站中的使用者帳號:

wp user list
+----+------------+--------------+------------------------+---------------------+---------------+
| ID | user_login | display_name | user_email             | user_registered     | roles         |
+----+------------+--------------+------------------------+---------------------+---------------+
| 1  | gtwang     | G. T. Wang   | guozhao.wang@gmail.com | 2015-03-05 18:21:38 | administrator |
+----+------------+--------------+------------------------+---------------------+---------------+

重新設定使用者密碼:

wp user update 1 --user_pass="my_password"

這是個指令會將 ID 為 1 的使用者密碼改為 my_password

參考資料:WordPressWordPress Developer Resources