阿里云服务器

我们用wordpress建站的时候,经常会遇到,用户注册收到的邮件链接无效,无法激活账户的问题。

下面给大家分别介绍对应问题和解决方案。

第一种情况是在用户注册的时候收到激活邮件:

点击链接却显示无效无法激活,检查链接会发现链接地址后面多出一个>

邮箱识别错误,导致点击出错。

可以通过下面两种方法来解决。

第一种方法:

直接在主题函数:function.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);

第二种方法:

直接修改文件: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') ;

在330行的样子

也就是把’<‘ .和. “>\r\n”去掉,但是升级后修改会被替换,所以建议使用第一种方法。

第二种情况是在用户修改用户和重置密码的时候出现

20191006141517.jpg

解决办法

在网站的wp-includes文件夹中找到pluggable.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->user_login), 'login') . "\r\n\r\n";

就可以正常显示正确的链接了。

相关阅读:
  • wordpress编辑框不让span过滤的方法
  • wordpress搜索为空时仍然返回结果问题
  • wordpress注册页取消邮箱的方法
  • wordpress用户头像在线调用代码
  • wordpress自动隐藏email注册,直接用户名密码注册
  • wordpress设置游客只能访问指定页面的方法
  • wordpress列表分页显示404页面的解决办法
  • wordpress页面默认排序修改的方法
  • wordpress新版本5.4 “Adderley” 发布上线,更新多项功能
  • wordpress默认编辑器功能增加的方法