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主要新功能的描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章