wordpress密码重置链接错误解决方法

wordpress教程 提交于 2017-06-17 17:23:21

有不少网友遇到点击wordpress密码重置链接出现“抱歉,该key似乎无效。”的错误提示,其实出现这个问题的根本原因是代码中的”>”被带进了链接,点击链接后跳转的地址变成了http://www.XXX.com/wp-login.php?action=rp&key=yQYLybNjt8sp2S1TQeO2&login=username>也就是找回密码的用户名后面多了一个“>”。

解决方法:打开根目录的wp-login.php查找wp-login.php?action=rp&key=$key&login= 出来结果中蓝色标记(即<>)的字符去掉。

$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”;
还有一个更简单的方法,将下面代码添加到当前主题的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);

如果文章对你有帮助,请赞赏支持本站发展!

发表评论

此字段内容将保密,不会被其他人看见。