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

MrLee2015-11-4 2197

有不少网友遇到点击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文件中。
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 );

本文链接:https://www.it72.com/6757.htm

推荐阅读
最新回复 (0)
    返回