WordPress 調試:您需要了解的所有指南

已發表: 2023-06-27

任何編碼項目中最薄弱的環節都是。 也就是說,人為錯誤幾乎總是一種保證,它會以錯誤和其他問題的形式出現。 您不會希望其中任何一個進入您的實時站點,這就是為什麼 WordPress 調試是項目期間的必要步驟。

事實上,WordPress 包含自己的調試模式,可以在您使用該平台時提供幫助。 如果將其與平台外調試器結合起來,您將擁有一個強大的系統來捕獲潛伏在黑暗中的任何東西。

在這篇文章中,我們將介紹 🔎 WordPress 調試,並向您展示如何設置它。 首先,我們將了解 WordPress 調試和其他類型的錯誤捕獲有何不同。 從這裡開始,我們將解釋為什麼 WordPress 需要自己的調試系統,然後再向您展示如何使用它。

WordPress調試與一般代碼調試的區別

當然,WordPress 使用 PHP 來運行幾乎所有內容,就像許多其他 Web 應用程序一樣。 然而,由於其特定的結構和生態系統,WordPress 調試可能不同於一般的代碼調試。

WordPress 調試和一般代碼調試之間的主要區別在於查看錯誤的方式。 WordPress 將在前端顯示與平台相關的錯誤消息。 相反,一般代碼調試通常發生在終端或專用代碼編輯器中:

運行調試器的 Intellij IDEA IDE。

另一個區別是使用 WordPress 特定的函數來幫助調試過程。 WordPress 提供了自己的一組函數,您將使用它們與內容管理系統 (CMS) 進行交互。 它們與典型的 PHP 函數不同,需要您採用特定的方法來使用它們進行調試。

總體而言,WordPress 調試與一般代碼調試的區別在於 WordPress 的具體結構和生態系統。 因此,您需要了解 WordPress 的架構,以及該平台提供的有效調試問題的功能。

為什麼WordPress調試需要特定的流程

WordPress 不僅使用其核心 PHP。 它還以主題和插件的形式運行外部 PHP。 如果將第三方開發與所有這些連接在一起的方式結合起來,那麼當您將所有代碼組合在一起時可能會引入錯誤。 因此,WordPress 提供了自己的調試工具來幫助解決開發過程中的這些問題。

您需要了解的另一個領域(這會影響您為什麼需要專門的 WordPress 調試)是其核心文件和文件夾結構。 例如,創建主題依賴於模板層次結構,當您執行行掃描以查找錯誤源時,模板層次結構可能很重要。

WordPress 模板層次結構概述。
圖片來源:WordPress.org

此外,WordPress 的設計基於良好的用戶體驗 (UX)。 專用的 WordPress 調試過程考慮到了用戶友好的錯誤報告的需要。 WordPress 沒有在代碼編輯器中使用複雜的堆棧跟踪,而是在前端顯示清晰的錯誤消息:

網站前端出現 WordPress 錯誤。

說到用戶體驗,WordPress 提供了一組自定義功能來幫助您的工作流程更加高效和安全。 因此,WordPress 的特定調試過程意味著您需要了解這些功能以及它們如何與平台交互。

總體而言,WordPress 擁有復雜的生態系統,注重用戶體驗和自定義功能。 所有這些都需要其自己的調試模式。 在下一節中,我們將了解如何打開此功能。

如何打開 WordPress 的調試模式(及其作用)

您可以通過wp-config.php文件打開 WordPress 的調試模式。 我們有一個關於如何執行此操作的快速指南,它不會花費您超過一分鐘左右的時間。 但是,您需要了解並可能使用幾種不同的模式:

  • WP_DEBUG 。 這是 WordPress 中的基本調試模式。 它支持平台內的常規調試。
  • WP_DEBUG_LOG 。 此模式將所有 PHP 錯誤、警告和通知保存到wp-content目錄中的debug.log文件中。 它對於識別前端沒有出現的難以發現的問題很有用。
  • WP_DEBUG_DISPLAY 。 此模式在前端顯示所有 PHP 錯誤、警告和通知。 它對於識別主題和插件的問題很有用,但它也可能顯示看起來沒有損壞的元素的消息。 例如,您經常會看到有關不正確的數據驗證約定的通知。

這三個功能可以交織在一起,因此您需要小心才能以最佳且安全的方式使用它們。 例如,您經常需要打開WP_DEBUGWP_DEBUG_LOG以將任何錯誤存儲到debug.log文件中。 但是,如果您不關閉WP_DEBUG_DISPLAY ,在前端顯示這些錯誤將對用戶體驗不利。

您還可以超越麵包和黃油命令並激活我們在另一篇文章中介紹的一些其他常量:

  • SCRIPT_DEBUG 。 出於性能原因,WordPress 使用縮小的 CSS 和 JavaScript 文件,但這些文件對於調試來說可能是一場噩夢。 一旦您打開SCRIPT_DEBUG ,WordPress 將使用文件的未優化開發版本。
  • SAVEQUERIES 。 這會將所有數據庫查詢保存在一個數組中,這可以幫助您識別影響站點性能的緩慢或低效的查詢。

如果沒有插件,WordPress 就不會成為現在的平台。 因此,有很多有用的插件可以幫助 WordPress 調試。 接下來,我們將看一些。

在開發過程中使用WordPress調試插件

插件應該成為您的工具庫的一部分,以幫助調查錯誤。 事實上,WordPress 的官方調試文檔包含了一些推薦的選項。

例如,查詢監視器將為您提供有關您執行的查詢的詳細信息。 這是幫助識別導致性能問題的查詢的絕佳方法。

調試欄向 WordPress 管理欄添加了一個調試菜單。 這使您可以隨時訪問調試信息,包括有關 PHP 錯誤、數據庫查詢以及 HTTP 請求的詳細信息。

由於 WordPress 使用大量自定義函數和常量,因此您可能需要密切關注它們是否已棄用。 日誌棄用通知插件可識別(並記錄)WordPress 中對棄用函數、掛鉤或參數的任何使用。 您將使用該插件來幫助您的代碼保持最新,符合最新的 WordPress 標準。

不過,您還可以安裝更多插件來幫助 WordPress 調試。 Simply Show Hooks 是一個很棒的選擇:

這個插件可以讓你查看頁面執行的每個鉤子。 它通常是一個首選插件,因為您可以一目了然地看到 WordPress 掛鉤頁面使用的內容,這將減少您最初尋找錯誤的時間。

如果您想找到一個更像是一體化解決方案的插件,那麼 DebugPress 可能是一個不錯的選擇:

該插件為您提供實時調試信息,包括 PHP 錯誤、數據庫查詢和 HTTP 請求。 它還包括一個用於監視服務器端錯誤的實時控制台。

您可能想要半自動化 WordPress 調試模式的初始實例化。 這就是優秀的 WP 調試插件的用途。

它允許您為所有可用的調試常量設置默認狀態,而無需打開wp-config.php文件。 您可以通過 WordPress插件菜單中的快速激活和停用來切換它們。

選擇 WordPress 調試插件

在選擇 WordPress 調試插件時,諸如上次更新時間之類的插件質量指標不太重要。 這是因為它們經常執行不需要恆定電流代碼庫的任務。

例如,Log DeprecatedNotices 的最後一次更新是在 2021 年。然而,儘管如此,它仍然是 WordPress 開發人員推薦的插件。 因此,我們認為,如果該插件按預期工作並且不會引入進一步的問題,那麼您最好將其用於調試目的。

應用程序性能監控 (APM) 的優勢

APM 工具可讓您監控應用程序的性能,其中包括 WordPress 網站的性能。 詳細的性能信息包括響應時間、錯誤率等。

APM 工具和調試似乎沒有太多共同點。 但是,這可以幫助您減輕一些調試工作,具體取決於具體情況。 此外,您可以先進行調試,然後使用 APM 維持該性能。

在 WordPress 調試方面,APM 工具有許多好處:

  • 您可以識別 WordPress 網站上的性能瓶頸。 實時分析意味著您可以識別可能降低網站速度的任何問題。
  • APM 工具可以幫助優化站點的性能。 這使您可以進行有針對性的改進並提升整體性能。
  • 通過監控關鍵性能指標,您可以識別可能影響網站運行狀況的任何問題。
  • APM 工具還可以幫助識別 WordPress 網站上的安全問題。 通過監控流量和網站活動,您可以發現任何可能表明存在安全問題的異常或可疑行為。

有一些非常適合 WordPress 的 APM 工具。 例如,Kinsta有自己的APM工具,而WP Engine則將New Relic的APM集成到其服務中。

一般來說,APM 工具可以幫助改善 WordPress 網站的用戶體驗,並對您的調試工作產生影響。 雖然它不是替代品,但 APM 可以幫助您確定錯誤修復是否是最佳的,以及可以在哪裡改進代碼。

幫助您進行 WordPress 調試的提示

我們這篇文章的重點是 WordPress 調試。 考慮到這一點,我們將提供六個技巧來幫助您更好地進行調試。

  1. 從靜態代碼分析開始
  2. 依靠您的調試工具
  3. 對您遇到的每個錯誤進行分類
  4. 回溯並進行二分搜索以找出每個可能的錯誤
  5. 在每個新代碼套件之後運行調試器
  6. 著眼於解決問題而不是消滅 bug

1. 從靜態代碼分析開始

靜態代碼分析是指在不運行代碼的情況下分析代碼。 您的目標是識別潛在的錯誤和漏洞。 您可以通過逐行掃描來完成此操作,儘管使用工具會更有效。 PHP CodeSniffer 或 PHP Mess Detector 在這裡都表現良好,前者也是 JetBrains 編輯工具的一部分。

這些工具可以幫助識別違反編碼標準、未使用的代碼以及其他可能影響 WordPress 網站性能和安全性的潛在問題。 您通常會將它們安裝在您的開發環境中,並針對您的代碼庫運行它們。 生成的報告將概述任何潛在問題。 這為您提供了一種識別和修復它們的方法。

從靜態代碼分析開始,您可以在開發過程的早期將潛在問題消滅在萌芽狀態。 這可以幫助確保您的 WordPress 網站正常運行,避免任何問題變得更加難以修復且耗時。

2. 依靠你的調試工具

說到調試工具,無論您使用哪種語言或 CMS 平台,它們都幾乎是必不可少的。 對於 WordPress 來說尤其如此,因為有一系列出色的插件可以幫助您。 然而,第三方、平台外工具也將提供價值。

在大多數情況下,調試工具將使您更深入地了解您的站點。 這將使您在優化性能、改進用戶體驗和增強安全性方面做出更明智的決策。

3. 對遇到的每個錯誤進行分類

調試的一項日常管理任務是對遇到的每個錯誤進行分類。 這有助於確定問題的根本原因並確定最佳解決方案。

您需要在這裡考慮多個因素,例如問題的嚴重性、對用戶體驗的影響以及修復的複雜性。 例如,您可以使用嚴重性級別系統,例如嚴重、主要、次要或裝飾性的。 這可以幫助根據錯誤對網站功能和用戶體驗的影響確定首先解決哪些錯誤的優先級。

對錯誤進行分類的另一種方法是使用可用性、功能或安全性等類別。 這可以幫助確定該錯誤如何影響您網站的特定區域。 反過來,這可以更輕鬆地確定問題的根本原因以及解決問題的最佳方法。

此外,您不需要特殊的系統來存儲這些數據 - 電子表格就可以了。 您甚至可能在代碼編輯器或集成開發環境 (IDE) 中擁有一個系統,例如顏色編碼。

4.回溯並進行二分搜索以找出每一個可能的錯誤

“回溯”是指回溯步驟以確定錯誤首先出現的位置。 您可以查看最近的代碼更改、測試以前的代碼庫或查看日誌。 這是簡化調試過程以確保解決所有潛在問題的好方法。

同樣,二進制搜索對於 WordPress 調試來說是一種有用的技術,尤其是在處理複雜問題時。 這涉及以系統的方式測試代碼庫的不同部分,以確定錯誤的位置。 您可以隔離代碼的特定部分,運行測試,然後轉到下一部分以進一步縮小問題範圍。

這是識別錯誤並找出修復方法的有效方法。 與更隨意的調試方法相比,您可能會節省時間和精力。 更好的是,對於更大的代碼庫或更複雜的問題,這可能是更好的方法。

然而,二分搜索確實需要有條理且有組織的方法來測試和評估所有潛在問題。 因此,文檔很重要,因為它可以讓您輕鬆地重現和修復您發現的任何問題。

5. 在每個新代碼套件之後運行調試器

就像定期保存更​​改一樣,您也應該養成在每個完整的代碼套件之後運行調試器的習慣。 當然,在繼續之前,您需要確保代碼功能符合您的預期。

這裡的一大好處是你不會有揮之不去的錯誤。 這有助於防止問題像滾雪球一樣越滾越大,並隨著開發的進展而變得更加難以解決。

然而,這種方法會浪費時間,特別是對於大型代碼庫或非關鍵問題。 因此,您可能會限制僅針對關鍵代碼更改或代碼庫中存在更多問題的區域運行調試器。

6.著眼於解決問題而不是消滅 bug

當談到 WordPress 調試時,將您的注意力從簡單的“消除錯誤”轉移到解決問題會很有幫助。 這意味著採取更主動的方法來識別和解決問題,而不是簡單地對發生的錯誤做出反應。

首先,尋找問題的根本原因,然後努力解決該原因,而不是簡單地解決問題的直接症狀。 這可能涉及重新設計代碼庫的某些部分或採用新的開發實踐,以防止將來發生類似的問題。

這種方法可以提高項目的整體質量和可靠性,減少未來出現問題的可能性,並增強用戶體驗。 此外,這種方法可以幫助您確定開發過程中需要改進的領域,從而實現更高效、更有效的開發實踐。

轉到頂部

結論🧐

簡而言之,WordPress 調試會利用平台報告影響其運行的代碼錯誤。 此外,在大多數情況下,您將使用一些專用插件來提醒您問題。 事實上,用於調試 WordPress 的選項可以與典型的調試工具(例如 Xdebug)一起使用。

好消息是,當涉及到 WordPress 時,您不會遇到笨拙的集成過程。 您可以使用wp-config.php文件並使用布爾值切換調試器(和日誌)。 這將顯示任何相關的錯誤以及比您通常獲得的更多詳細信息。 從那裡,您可以努力修復錯誤並使您的網站更接近完成。

您對 WordPress 調試或遇到過的任何場景有任何疑問嗎? 請在下面的評論部分告訴我們!