wordpress 4.3.1版本更新后有重大变化,其中一个是新用户注册默认随机生成复杂密码,用户必须点击注册邮件里的链接,自行设置新密码。 问题是,wordpress有一个长期存在的bug,自动重置密码邮件末尾多了“>”字符,导致用户点击时,wordpress提示“该key似乎无效”,英文版wordpress提示invalid key。目前你搜索到的解决方法,都是指用户二次重置密码的场景,解决教程已经过时。 我根据wordpress开发者文档提供的线索,找到了wordpress 4.3版本新用户注册邮件的相关代码。新用户注册邮件相关代码在网站安装目录的/wp-includes/pluggable.php $message .= ‘<‘ . network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user->user_login), ‘login’) . “>\r\n\r\n”; 找到上面这行,删除红色部分一个字符即可。 这件bug折腾我很久,我首先查找中文区教程,发现严重滞后,似乎没人关心这个问题,使用英文搜索google也难找到答案。我估计原因是4.3.1更新没多久,需要社区一段时间的使用反馈,无奈之下从wordpress开发者文档入手,找相关函数,顺藤摸瓜,终于定位了代码位置,了却一桩心事。
wordpress用户密码重置bug修复
wordpress有一处bug,用户点击重置密码后,接收到的邮件里,重置密码的网址无效,提示“key无效”,原因是邮箱没有正确处理网址结尾的括号“>”,去掉“>”,链接就正常了。我们需要改正这处bug。