wordpress用户密码重置bug修复

wordpress有一处bug,用户点击重置密码后,接收到的邮件里,重置密码的网址无效,提示“key无效”,原因是邮箱没有正确处理网址结尾的括号“>”,去掉“>”,链接就正常了。我们需要改正这处bug。

感谢”WP大学”站长提供了一种解决办法:

找到当前主题目录里的functions.php文件,可在wordpress网站后台-外观-编辑,添加如下代码:

[newcode title=”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);[/newcode]

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.