千家信息网

修正WordPress密码设置链接错误的方法

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,小编给大家分享一下修正WordPress密码设置链接错误的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Press教程
千家信息网最后更新 2025年02月05日修正WordPress密码设置链接错误的方法

小编给大家分享一下修正WordPress密码设置链接错误的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Press教程栏目给大家介绍修正 WordPress 密码设置链接错误的方法,希望对需要的朋友有所帮助!

当用户注册或者忘记密码获取新密码时WordPress会自动向用户邮箱中发送一个验证链接地址,用户通过打开这个链接设置密码,不过经常发现这个链接直接打开后,并不是设置密码的正确链接。

这个问题的并不是WordPress的原因,正常WordPress设置密码的链接地址是没有超链接的,而是QQ邮箱自作聪明为个链接地址加上了超链接,并把本不是链接地址内容的<>符号也加了进去,结果造成链接错误,貌似只有大家常用的QQ邮箱有此问题。这是一个老生常谈问题,网上解决办法比比皆是,不过都是千篇一律,充分体现了天下文章一大抄。

下面是我的解决方法,以WordPress 5.3.2为例:

一、最简单的方法

修改WordPress程序文件删除代码中的<>符号,

修正忘记密码获取新密码链接

打开WordPress程序根目录的wp-login.php文件,将大约417行的:

$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程序wp-includes目录中的pluggable.php文件,将大约2003行的:

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

改为

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

也是只需要把代码中前后<>符号去掉即可。

缺点:升级WordPress程序后,需要再次修改。

二、一劳永逸的方法

这也是本文的重点,也是应主题用户的要求,添加到目前主题中的方法,这里分享一下。

将下面代码添加到当前主题函数模板functions.php中即可。

// 修正忘记密码获取新密码链接add_filter('retrieve_password_message', 'zm_reset_password_message_amend', 99, 1);function zm_reset_password_message_amend($string) {return preg_replace('/<(' . preg_quote(network_site_url(), '/') . '[^>]*)>/', '\1', $string);} // 修正用户注册设置密码链接add_filter( 'wp_new_user_notification_email' , 'zm_user_notification_email_amend', 10, 3 );function zm_user_notification_email_amend( $wp_new_user_notification_email, $user, $user_email ) {global $wpdb, $wp_hasher;$key = wp_generate_password( 20, false );do_action( 'retrieve_password_key', $user->user_login, $key );if ( empty( $wp_hasher ) ) {require_once ABSPATH . WPINC . '/class-phpass.php';$wp_hasher = new PasswordHash( 8, true );}$hashed = time() . ':' . $wp_hasher->HashPassword( $key );$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user->user_login ) );$switched_locale = switch_to_locale( get_user_locale( $user ) );$message = sprintf(__('Username: %s'), $user->display_name) . "\r\n\r\n";$message .= __('To set your password, visit the following address:') . "\r\n\r\n";$message .= '' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n";$wp_new_user_notification_email['message'] = $message;return $wp_new_user_notification_email;}

网上能找到修正重置密码链接的方法,不过代码略显拖沓,本文的方法只一句关键代码解决。

至于修正用户注册设置密码链接,经过重写邮件函数解决,貌似代码还有精简的余地,以后再研究了。

以上是修正WordPress密码设置链接错误的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

链接 密码 方法 代码 用户 错误 地址 用户注册 程序 符号 主题 内容 文件 邮箱 问题 新密 函数 篇文章 帮助 拖沓 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金山区营销软件开发优势 我的世界服务器常用种子 抖音icp备案服务器选择什么的 网络安全社会性攻击 rtmp服务器搭建 星露谷物语合作正在连接到在线服务器 软件开发有英语基础吗 网络安全工程师的晋升空间 c文件读入测试数据库 数据库怎么统计总和 vb语言自建数据库 我的世界1.14服务器小游戏 深圳市盈丰网络技术有限公司 网络安全包括什么内容 思科网络技术第一章 无法驱动安全中心服务器 网络安全手抄报 - 资讯搜索 广州博睿互联网科技有限公司 app软件开发通用语言 关系数据库管理系统中所谓关系 php开源的网络安全检测 数据库job的执行原理 华为服务器怎么样 知乎 学软件开发 推荐一款电脑 清远卫星软件开发报价行情 服务器accept无法建立连接 海上搜救遇险人员数据库 嵌入式软件开发哪家便宜 java数据库系统开发 u8 连不上 数据库
0