WordPress 會員遺失密碼後,可以透過登入頁面,點擊「忘記密碼」的功能,輸入會員的帳號或電子郵件方法,利用電子郵件的密碼重設的連結,重設一組密碼來登入網站。
不知甚麼時候,第三方 SMTP 郵件主機改了安全設置,電子郵件裡的密碼重設連結網址,都不會顯示了。
目前發現 Mailgun 和 Google SMTP 郵件伺服器,出於安全的設置,阻止了帶有 “<" 和 ">” 的網址連結,減少跨站點攻擊的腳本。
如圖所示,重設密碼的連結消失了。
感謝 Jack Wu 反饋給我不同的訊息,讓我重新測試手上不同系統、不同 PHP 版本的 VPS 主機。
https://www.facebook.com/jackwu116
PHP5.6 ~ 7.2 版本的都沒這問題,也不是 SMTP 外掛的問題,偏偏就是有一台主機發生這狀況,目前先用以下的方法來解決電子郵件裡的密碼重設連結網址。
修復方法
打開你的網站根目錄的 wp-login.php 文件,在第 367 行:
原本的
$message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . ">\r\n";
修改為
$message .= "(" . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . ")\r\n";
將 “<" 和 ">” 替換為 “(” 和 “)”
存檔後,用 FTP 上傳覆蓋原本的 wp-login.php 文件,你再測試一下 WordPress 找回密碼的功能,就會正常了,如圖:
我在網路上搜尋到一些類似的問題,如果您知道,歡迎指教:
Topic: Password reset link not showing « WordPress.org Forums
https://wordpress.org/support/topic/password-reset-link-not-showing/
Reset password link not showing
https://wordpress.org/support/topic/reset-password-link-not-showing-2/
2019/04/27 補充:
當初這個問題是一個 perfmatter 優化外掛造成的,外掛更新後就正常了。
Featured Photo 攝影師:Jonathan Petersson,連結:Pexels
原來原來,
這是 Perfmatters 外掛出問題,有安裝的朋友請盡快更新到 1.2.1 版本,修復這個錯誤。
所以說,沒事別安裝太多的外掛。
最近又被 Social Warfare – Pro 雷到,哈哈..