【WP】WordPress找回密码出现"抱歉,该key似乎无效"提示的解决方法

Posted by zhang on

wordpress管理员的密码忘了记, 通常有三种方法
一、通过数据库找回(一般人都不会,因为修改数据库看起来比较复杂)
二、通过password-resetter插件找回 这个也是很简单的方法
三、通过邮箱找回,这个简单,但是有的会出现抱歉,该 key 似乎无效

抱歉,该key似乎无效

出现抱歉,该 key 似乎无效的怎么办呢 网上有的人说是服务器的问题 有的不支持邮箱
但是其实不是服务器的问题 而是找回密码的链接地址出现的一个问题,以本网址为例子
通过邮箱找回密码 邮箱会收到如下内容
QQ截图20140501111935

方法一:

通常情况下我们是直接点击开这一个链接 然后打开一个网页,但是只要我们把这一长串链接复制了 然后去掉开头和结尾的<>这个符号,然后粘贴在浏览器地址了打开就会发现?“抱歉,该 key 似乎无效”这个错误提示就没有了,而是可以正常的重置密码了
换句话说 关于?“抱歉,该 key 似乎无效”就是因为多了个“<>”符号的错误

 

除了复制粘贴,还可以通过修改代码来实现

 

方法二:

/**
 * 修复 WordPress 找回密码提示“抱歉,该key似乎无效”
 * http://zhangsubo.cn/  */
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 = __(’有人要求重设如下帐号的密码:’). "

";
	$msg .= network_site_url() . "

";
	$msg .= sprintf(__(’用户名:%s’), $user_login) . "

";
	$msg .= __(’若这不是您本人要求的,请忽略本邮件,一切如常。’) . "

";
	$msg .= __(’要重置您的密码,请打开下面的链接:’). "

";
	$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);
 
方法三:

打开WP根目录下的 wp-login.php,找到如下代码:

$message .= ’<’ . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), ’login’) . ">
";

修改为:

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), ’login’) ;

即可。