??此問題主要影響忘記密碼時的找回密碼功能及新用戶注冊時,,系統給新用戶發(fā)送的密碼設置功能??赏ㄟ^以下兩個步驟解決此問題:
??打開WP根目錄下的 wp-login.php,,找到如下代碼(374行左右): $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"; ??即去掉兩個尖括號即可。
??打開WP安裝目錄下的/wp-includes/pluggable.php,,找到如下代碼(1741行左右): $message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n"; ??修改為: $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n"; ??以上修改后,用戶收到的密碼重置及新用戶收到的密碼設置郵件將不會再包含“<>”,用戶再郵箱中點擊鏈接后即可正常重置或者設置密碼,。以上修改涉及到Wordpress源代碼的修改,,每次升級Wordpress后修改會被覆蓋,必須重新進行以上修改,。 ??另一種解決方式:把下面的代碼加入當前主題的functions.php里面就可以了,。 /** * 修復WordPress找回密碼提示“抱歉,該key似乎無效”問題 */ function reset_password_message( $message, $key ) { if ( strpos($_POST['user_login'], '@') ) { $user_data = get_user_by('email', trim($_POST['user_login'])); } else { $login = trim($_POST['user_login']); $user_data = get_user_by('login', $login); } $user_login = $user_data->user_login; $msg = __('有人要求重設如下賬號的密碼:'). "\r\n\r\n"; $msg .= network_site_url() . "\r\n\r\n"; $msg .= sprintf(__('用戶名:%s'), $user_login) . "\r\n\r\n"; $msg .= __('若這不是您本人要求的,,請忽略本郵件,,一切如常。') . "\r\n\r\n"; $msg .= __('要重置您的密碼,,請打開下面的鏈接:'). "\r\n\r\n"; $msg .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ; return $msg; } add_filter('retrieve_password_message', reset_password_message, null, 2); ??這種辦法的缺點是,,每次換主題都要重新把代碼添加到主題的function.php文件中,。 來源:https://www./content-4-636451.html |
|