WordPress“您的密码重设链接无效,请在下方请求新链接。”错误的两种解决办法

xiaofei0条评论 361 次浏览

当注册WordPress帐户时进行邮箱验证,邮箱成功收到邮件,但点击邮件链接后结果发现显示“您的密码重设链接无效,请在下方请求新链接。”。

其实是邮箱发送的地址后面多了个”>”号,本来是WordPress为了美观,前后加上了尖括号,结果适得其反,被邮箱解析到地址里面去了,点击后自然会是无效的了。

方法一:

解决的方法很简单,把下面的代码加入当前主题的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);

这种方法的缺点就是更换主题后需要重新添加代码。

方法二:

当然,网上也有另外一种方法那就是修改WordPress目录下的wp-login.php。

$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”去掉,但是这种方法在升级Wordpress后会失效,因为升级后wp-login.php会被替换,需要重新修改wp-login.php,所以推荐使用第一种方法。


发表评论

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

This site uses Akismet to reduce spam. Learn how your comment data is processed.