教程介绍:解决wordpress新用户注册邮件链接无效以及重新设置密码链接无效的问题

解决流程

案例一、用户注册

当用户注册站点时,用户会收到如下注册信:

当用户点击链接时,却发现链接无效:

仔细观察设置密码的链接,会发现邮箱发送的链接地址后面多了个”>”号,本来是WordPress为了美观,前后加上了尖括号,结果适得其反,被邮箱解析到地址里面去了,点击后自然会是无效的了。

解决办法

方法一

解决的方法很简单,把下面的代码加入当前主题的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);

方法二

通过修改WordPress根目录下wp-login.php文件可以解决这个问题。

找到如下代码(大约在第330行):

$message .= '\r\n";

修改为:

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ;

其实也就是把’\r\n”去掉,但是这种方法在升级Wordpress后会失效,因为升级后wp-login.php会被替换,需要重新修改wp-login.php,所以推荐使用第一种方法。

修改后即用户可正常设置密码:

案例二、用户修改、重置密码

当用户点击忘记密码选择重新修改密码时,用户会收到如下信件:

发现还是上面的情况类似,修改密码链接地址后面多了个”>”号。

解决办法

下载站点中wp-includes文件夹中的pluggable.php文件并打开

找到如下语句:

$message .= '\r\n\" ;

修改为:

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n";

用户即可收到正常链接重置密码的邮件:

如何联系我:【万里虎】www.bravetiger.cn

【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起)

【博客】http://www.cnblogs.com/kenshinobiy/

php项目邮件连接无效,完美解决wordpress邮件链接无效的问题相关推荐

  1. 完美解决wordpress邮件链接无效的问题

    教程介绍:解决wordpress新用户注册邮件链接无效以及重新设置密码链接无效的问题 解决流程 案例一.用户注册 当用户注册站点时,用户会收到如下注册信: 当用户点击链接时,却发现链接无效: 仔细观察 ...

  2. linux node 命令无效,完美解决linux下node.js全局模块找不到的情况

    今天在在linux上用npm安装了pm2准备部署node项目,结果通过pm2命令启动项目的时候报pm2找不到,这很伤,以为pm2没有安装成功,但是在node安装目录下面的bin文件夹里面调用pm2却没 ...

  3. php重复点击按钮无效,完美解决UIButton按钮重复点击、多次响应的问题

    最近测试老跑过来提bug,说按钮可以点好几次,然后蹦出来好几个一样的界面出来,解决了一个地方,其他地方也会冒出一样的问题来,仔细一想,还是要从根本上解决问题,于是想了几个方法: 1.添加UIButto ...

  4. java项目红叉_完美解决Eclipse导入的项目上有个红叉,但不影响项目运行的问题

    从别的eclipse导了个项目,导入后项目文件夹上显示一个红叉,但项目能跑通.检查了jdk.tomcat版本,都改正正确了,项目目录树里面每个文件夹里面的文件,src.xml都查了,都没发现问题. 后 ...

  5. testflight显示无法连接服务器,完美解决 TestFlight 提示“无法载入APP”

    TestFlight 是苹果旗下的应用测试平台,它主要是帮助开发者对最新版本 APP 进行测试,并收集建议来完善应用. 老k也会经常使用 TestFlight 来体验内测 APP,但是不知道是什么时候 ...

  6. Nginx下完美解决WordPress伪静态后台404 Not Found nginx

    问题是这样的:我习惯在博客地址后面直接加"wp-admin"敲回车进入WordPress后台,但是进去以后发现不管我点任何一个管理子项,一律404(找不到页面)! 仔细看了一下管理 ...

  7. 用JS实现发邮件的功能 完美解决

    怎样用JS实现发邮件的功能? 我想用JS实现把页面文本框中的内容直接通过邮件的方式发送到一个指定的邮箱. fengxq给出的答案是 <script language=javascript> ...

  8. Nginx下完美解决WordPress的伪静态 (wordpress 迁移后 导致 页面404)

    直奔主题 如何设置WordPress在 Nginx下的伪静态 第一步:按照文章名为例,登陆后台按照箭头顺序修改固定连接,点击保存更改 第二步:登陆宝塔面板后台,按照文件路径 找到属于要配置域名的con ...

  9. php 文章id连续,真正完美解决wordpress文章ID不连续问题

    WordPress默认情况下发布的文章ID不是连续的,因为自动草稿.文章修订版.页面.菜单.媒体等功能都要占用ID,所以使得ID不连续.百度了一圈,居然有人给出这样的解决方案:"这样如果你只 ...

最新文章

  1. CodeGen编写自定义表达式标记
  2. K单体型重建算法的研究
  3. Kubernetes — 调度系统
  4. c++找不到标识符_沪C转沪牌流程攻略大全
  5. jpa oracle mysql,oracle+jpa和mysql+mybatis的混合多数据源配置例子
  6. 武汉计算机应用中职学校,武汉市中职学校计算机应用基础课程抽考.Doc
  7. ab压力测试php脚本,ab压力测试工具-批量压测脚本
  8. Spring Security:基于内存的认证信息
  9. 组图:2007最震撼人心的“史上最牛”事件
  10. python加载dll后如何查看函数_Python调用DLL带指针函数读写IC卡
  11. 医院门诊管理系统——计件收费
  12. webstorm 主题导入方法
  13. SDRAM控制器设计(8)SDRAM控制器仿真验证
  14. CSV文件分割工具开发-python版
  15. 好好说话之hijack retaddr
  16. UiPath 网页元素识别
  17. matlab无法打开wps的xls文件,wps表格无法打开xls文件相关解决方法
  18. 计算机网络【奈氏准则和香农定理】
  19. 技术、商业和创新的彼岸:“被折叠”的三星
  20. win10 win+shift+s 截图存哪里去了

热门文章

  1. Windows 10企业批量部署实战之Windows 10客户端部署
  2. Phonegap集成angular/bootstrap/animate.css教程
  3. Exchange2010 SP1部署边缘服务器
  4. 说说.NET中忽视的方法
  5. 图解交换机与路由器组网
  6. spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析
  7. SpringBoot注解分析
  8. mysql中使用case when语句
  9. unity 学习记录
  10. 宝宝的成长脚印9/29