这是今天遇到的一个问题,在用户使用自己的Email重置WordPress密码时,会收到一封密码重置的邮件,里面包含重置链接。但是邮件内容中会用一对尖括号把URL括起来,从而导致文本链接最后包含了后面的半个尖括号,用户点击URL就会提示“key似乎无效”,无法进行密码重置。
解决的办法也很简单,通过修改wp-login.php文件中的邮件发送信息即可:
将
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">rn";
这句中的尖括号去掉即可。为了简洁化,我们可以把整句改为:
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . " rn";
不过这样又会有一个坏处,下次你更新WordPress系统之后,需要自己手动再改一次。如果你不想改,可以使用一个add_filter来实现。由于我没有具体操作过,我下面只是给个思路,你不要照抄过去。
add_filter('network_site_url','function_filter'); function function_filter($url){ if($GLOBALE['page']=='wp-login.php'){ return ' '.$url.' '; } }
如果这个filter存在的话,那么当前页面是登录页面的时候,就在返回URL的时候前后都加一个空白,这样文本URL就不会和尖括号连在一起了。不过这个方面没有经过实验,能否成功未知。
下面我简单说几句