WordPress 5.2中的致命错误恢复模式

WordPress 5.2的致命错误恢复模式将允许WordPress管理员修复或减轻他们网站上的致命错误,这些错误以前在没有开发人员帮助和修改代码库的情况下无法解决。即使在致命错误通常会使后端完全无法访问的情况下(例如发生所谓的“白屏死机”),管理员现在仍然有机会登录并对此问题采取措施。

发生致命错误时,将显示面向用户的错误屏幕,通知用户/访问者该站点遇到技术问题。更重要的是,当发生此类错误时,将向管理员电子邮件地址发送电子邮件,通知该问题并包括指向称为“恢复模式”的新功能的秘密链接。单击此链接将允许用户进入此恢复模式,该模式通过在当前客户端上放置cookie来工作。

在恢复模式下,为该客户端暂停导致致命错误的插件和主题(也称为“扩展”),确保他们可以解决这些错误并定期访问其管理后端。进入恢复模式后,用户需要登录。虽然恢复模式本身不依赖于特定用户,但仅限于客户端上存在的cookie,但应突出显示。

登录后,管理员通知将提示已启用恢复模式。此外,将通知用户由于致命错误而暂停哪些插件/主题,以及这些错误到底是什么。然后他们有可能以他们喜欢的方式解决问题:

  • 他们可以完全停用扩展,例如,当维护站点的可工作版本比扩展的功能更重要时。这通常是临时解决方案,但可立即解决问题。
  • 如果他们具有技术能力,他们可以解决问题,然后恢复扩展。
  • 他们可以向相应扩展的作者提交支持请求,或者联系开发人员,反馈确切的错误。

用户可以在恢复模式下单击管理栏中的按钮,随时决定退出恢复模式。退出恢复模式将从客户端擦除cookie,从而导致所有扩展程序再次像往常一样运行。请记住,如果扩展仍然产生破坏,则会发生致命错误。

处于恢复模式时的管理员后端。 突出显示管理栏中的通知和退出按钮,表示恢复模式处于活动状态。
处于恢复模式时的管理员后端

恢复模式的主要好处是告知管理员他们网站上的致命错误并允许他们仍然可以访问他们的后端并决定如何解决问题,而不是向他们展示以往他们不能做任何事情的典型的“死亡白屏”。自动修复此类错误是不可能的,但恢复模式允许通过暂停已损坏的扩展来解决这些问题。暂停仅发生在处于恢复模式的客户端,因此不会产生任何全局影响。如果扩展断开,只有处于恢复模式的用户才能访问损坏的区域;对于其他用户,在问题得到修复或缓解之前,该站点仍处于中断状态。

开发者

开发人员可以通过两种方式与新的恢复模式功能集成:

  • 想要增强恢复模式的插件可以调用新函数wp_is_recovery_mode()来检查它是否处于激活状态。
  • 如果恢复模式更喜欢使用不同的方法或通过代码纯粹启用它,则环境可以覆盖恢复模式的设置和验证方式。例如,必须使用的插件可以设置一个WP_RECOVERY_MODE_SESSION_ID需要包含任意会话ID 的常量,然后该常量将用于存储该会话的恢复模式特定数据。具有常量可用将强制启用恢复模式。但是,必须特别小心使用此机制,因为无条件地设置常量将导致恢复模式全局启用。
  • 可以使用php-error.php与其他先前存在的插件类似的插件来自定义指示发生致命错误的屏幕模板db-error.php
  • 可以使用fatal-error-handler.phpdrop-in 覆盖整个关闭处理程序。此drop-in必须返回扩展默认WP_Fatal_Error_Handler类的类的实例。如果是这种情况,将使用实例而不是默认实例。
  • 想要完全禁用致命错误处理程序和恢复模式功能的环境可以通过设置WP_DISABLE_FATAL_ERROR_HANDLER常量来实现,通常是在wp-config.php。应使用新函数检查处理程序的启用状态wp_is_fatal_error_handler_enabled()

你也许想看看WordPress 5.2中另一个全新的项目WordPress网站健康检查的文章,也可查看WordPress 5.2候选版本中有关WordPress 5.2主要新功能的描述。

发表评论

不要错过最新的建站技巧,订阅我们的文章

我们和您一样痛恨垃圾邮件,我们尊重您的隐私不会出售或分享您的电子邮件地址。