纠正全网不合理的WordPress 密码重置Bug解决方案

2020/04/16

WordPress 密码重置Bug已存在一段时间了,一直都没有纠正(很疑惑)。这个Bug就是在我们点击密码重置的时候,输入正确的电子信箱或用户名,会给用户邮箱发送一个密码重置的链接。但是会出现一个提示,就是重置错误,如下图:

这个原因就是发送的链接把“>”这个尖括号做成了链接地址中,这个bug貌似个大乌龙。对应的办法就是去掉链接中的“>“。网上的办法是:

修改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核心文件,一旦更新,有可能会需要重新设置。

正确的方法是:

1、在后台,外观-主题编辑;

2、找到functions.php,点开。

3、把下面的代码放进去:

add_filter( 'wp_mail','remove_tags' );
function remove_tags( $args ){
    $args['message'] = str_replace( '<', '', $args['message'] );
    $args['message'] = str_replace( '>', '', $args['message'] );
    return $args;    
}

现在happy吧

2 thoughts on “纠正全网不合理的WordPress 密码重置Bug解决方案

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注