修復 WordPress 密碼重設連結不顯示的問題

WordPress 會員遺失密碼後,可以透過登入頁面,點擊「忘記密碼」的功能,輸入會員的帳號或電子郵件方法,利用電子郵件的密碼重設的連結,重設一組密碼來登入網站。

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

yungke
yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師。WooWP Managed WordPress hosting 與 Kinsta 合作,推出最優惠、穩定的 GCP 主機方案,了解更多>>

文章: 147

1 則留言

  1. 原來原來,
    這是 Perfmatters 外掛出問題,有安裝的朋友請盡快更新到 1.2.1 版本,修復這個錯誤。
    所以說,沒事別安裝太多的外掛。
    最近又被 Social Warfare – Pro 雷到,哈哈..

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *