You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WordPress Multisite的丢失密码邮件内容?

WordPress Multisite 修改找回密码邮件文本可行方案

方案1:使用官方专属过滤器钩子(全局生效)

绝大多数修改失效的核心原因是误用了单站点的retrieve_password_message钩子,该钩子在多站点模式下不会触发,必须使用多站点专属的retrieve_password_notification_email钩子。
建议将代码放在wp-content/mu-plugins目录下新建的自定义php文件中(比如命名为custom-password-email.php),该目录的代码会优先加载,不受主题切换、插件启用状态影响,可全局对所有子站点生效。
参考代码如下:

<?php
// 优先级设为999,确保晚于其他插件/主题的同钩子代码执行,覆盖已有修改
add_filter( 'retrieve_password_notification_email', 'custom_multisite_lost_password_email', 999, 4 );
function custom_multisite_lost_password_email( $email, $key, $user_login, $user_data ) {
    // 自定义邮件标题
    $email['subject'] = '您的站点密码重置申请';
    // 自定义邮件内容,可按需拼接用户名、重置链接等变量
    $email['message'] = '您好 ' . $user_data->display_name . ':
您刚刚提交了密码重置申请,请点击以下链接重置密码:
' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . '
如果您没有提交此申请,请忽略本邮件。
此致
站点管理团队';
    // 如需自定义发件人可取消注释下行修改
    // $email['headers'] = 'From: 你的站点名称 <admin@yourdomain.com>' . "\r\n";
    return $email;
}

如果仅需要修改单个子站点的邮件内容,也可以将代码放入对应子站点已启用主题的functions.php文件中,仅对当前子站点生效。

常见失效问题排查

  • 如果你安装了SMTP插件、邮件自定义类插件,请先进入插件设置页,查找是否有「找回密码邮件模板」相关配置项,插件内的配置优先级高于自定义代码
  • 调整钩子优先级:如果仍不生效,可将上述代码中钩子的第三个参数999调高到更大的数值,确保你的代码最后执行覆盖其他修改
  • 测试时请使用前台找回密码入口操作,不要使用后台用户管理页的「发送密码重置邮件」按钮,部分版本下后台操作会跳过上述钩子

内容的提问来源于stack exchange,提问作者Sajidul Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:09:02