如何在 WordPress 中为致命错误处理程序 (WSoD) 设置通知电子邮件

Posted

技术标签:

【中文标题】如何在 WordPress 中为致命错误处理程序 (WSoD) 设置通知电子邮件【英文标题】:How to Set Notification Email in WordPress for Fatal Error Handler (WSoD) 【发布时间】:2021-03-22 11:11:05 【问题描述】:

WordPress 5.2 集成了 WSoD 保护,默认情况下,当站点遇到一些致命错误时,它会向管理员发送电子邮件通知。我已经为我的客户建立了一个网站,我想监控此类错误以防万一,但我不想仅仅为此目的在我的客户网站中插入管理员角色。如果发生此类事件,是否有任何钩子可以让我设置额外的技术支持电子邮件?

【问题讨论】:

【参考方案1】:

您正在寻找恢复模式挂钩。第一种更简单的方法是在 wp-config.php 中设置 RECOVERY_MODE_EMAIL 常量。

define( 'RECOVERY_MODE_EMAIL', 'you@example.com' );

还可以通过recovery_mode_email 过滤器更改恢复模式电子邮件地址:

add_filter( 'recovery_mode_email', function( $email ) 
    $email['to'] = 'you@example.com';
    return $email;
 );

这样您将收到邮件而不是您的客户,客户不会害怕并且您会被告知问题。如果您希望将其发送到多个地址,请将电子邮件作为数组返回:

add_filter( 'recovery_mode_email', function( $email ) 
    $email['to'] = array('you1@example.com', 'you2@example.com');
    return $email;
 );

建议将您的过滤器实现放在单独的插件或 mu-plugin 中,以避免主题中的致命错误导致过滤器永远不会触发。

Reference

【讨论】:

@GeorageP,感谢您的详细说明。想知道过滤器“recovery_mode_email”是否可以在 mu-plugin 中使用? 是的,这是推荐的使用方式,而不是 functions.php。见:core.trac.wordpress.org/ticket/47939 嘿@GeorageP,想知道您是否知道如何测试恢复邮件?我试图在一个插件中出现语法错误,但没有为管理员和我的其他电子邮件发送恢复邮件。我已经测试了我的主机电子邮件服务是否正常工作。 d 我需要手动启用恢复模式吗?

以上是关于如何在 WordPress 中为致命错误处理程序 (WSoD) 设置通知电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

PHP:自定义错误处理程序 - 处理解析和致命错误

在 Wordpress 中激活 Unyson 插件时出错致命错误

致命错误:找不到类“BUILDR_OPTIONS”

WordPress 编辑器未更新文件:无法与站点通信以检查致命错误

导入 WordPress xml 文件时的最大执行时间致命错误

WordPress:可捕获的致命错误:stdClass 类的对象无法转换为字符串