新的 WordPress 注册流程改变了,不在要求用户自己输入密码来申请注册,而是反过来给用户的邮箱发送密码找回链接。
这样的好处是避免了一些安全隐患还顺便关联了邮箱。不过,这样也对这些搭建 WordPress 的博主的技术有了进一步的要求,比如:
需要自己配置邮箱——如果你的空间没有提供邮箱的话,一般是服务器代发,这样的邮件则很容易进到垃圾邮件列表——更有甚者直接就收不到了。如果你是自己的vps,那你还得搭建各种服务——php自带的发信功能又不是那么完美。
总之,我们得一一解决这些问题。
这里,我遇到了一个只会在偶尔才发生的情况,在搭建了 cnswift.org 这段时间里,不少人一直来注册,他们与我的工作环境不同,所以注册的邮箱也不一样,而 WordPress 发送的激活链接是以 <https://www.logcg.com/xxxxxx> 的形式发送,所以对于一些不太好的邮箱来说,链接不是被解析为 https://www.logcg.com/xxxxxx 而是奇怪的 https://www.logcg.com/xxxxxx> 。
这也就难怪总是会有一些人来跟我说:
“抱歉,该 key 似乎无效”
了。
这似乎还是 WP 常年以来的老bug,不过,我们可以手动修复它,改系统文件不是一个好的办法——毕竟,现在 WordPress 升级还是挺频繁的。
我们在 function.php 里写个小插件即可,另外,最好像落格博客一样对当前主题做一个子主题——不费什么事,但可以避免你在更新主题后重新配置或者为了保留配置而不敢更新。
总之,在你的 function.php 文件末尾添加如下代码即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/** * WordPress忘记密码发送的邮件中点击找回链接提示“抱歉,该 key 似乎无效” */ 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); |
这下,发送的邮件里就不会再有那一对烦人的 <> 了!
延伸阅读
http://www.chencao.com/575.html
本文由 落格博客 原创撰写:落格博客 » WordPress 找回密码邮件 “抱歉,该 key 似乎无效”
转载请保留出处和原文链接:https://www.logcg.com/archives/1433.html