網站又掛了?別再瞎猜!資深工程師的 WordPress 偵錯終極指南,從「死亡白畫面」到效能瓶頸全搞定!

2025/04/28 | 技術教學資源, 架構與效能優化

網站又掛了?別再瞎猜!資深工程師的 WordPress 偵錯終極指南,從「死亡白畫面」到效能瓶頸全搞定!

哈囉,我是浪花科技的資深工程師 Eric。寫了這麼多年的程式,如果說有什麼場景最讓我半夜驚醒,那絕對不是複雜的演算法,而是客戶傳來的一句:「欸,我的網站一片空白了。」

這就是傳說中的「WordPress 死亡白畫面(White Screen of Death, WSOD)」,是每個 WordPress 開發者和站長的共同惡夢。面對這個畫面,很多人的第一反應是驚慌失措,然後開始像無頭蒼蠅一樣,隨便關閉外掛、切換佈景主題,希望能矇中問題點。我跟你講,這種「瞎猜流」 Debug 法,運氣好可能讓你解決問題,但更多時候是浪費時間,甚至把情況搞得更糟。

偵錯(Debugging)不應該是通靈,它是一門科學,一門有系統、有邏輯的技術。身為一個專業的工程師,我們的職責就是用最有效率的方式找出問題的根源並解決它。今天,我就要以一個資深工程師的身份,帶你建立一套完整的 WordPress 偵錯 SOP,從最基礎的內建工具,到專業級的偵錯外掛,讓你未來面對任何疑難雜症,都能從容不迫,一擊斃命!

第一誡:開啟 WordPress 的「天眼通」- WP_DEBUG

在我們動手做任何事情之前,第一步,也是最重要的一步,就是讓 WordPress「開口說話」。預設情況下,為了網站安全和使用者體驗,WordPress 會隱藏所有的 PHP 錯誤訊息。這就好像一個人生病了,卻不告訴你哪裡痛,你要怎麼幫他看病?

我們的第一個任務,就是編輯網站根目錄下的 wp-config.php 檔案,開啟 WordPress 的偵錯模式。這檔案超級重要,改錯了網站會直接掛掉,所以操作前請務必備份!

啟用偵錯模式的「三神器」

wp-config.php 檔案中,找到 `/* That’s all, stop editing! Happy publishing. */` 這行註解,在它的上方加入以下三行程式碼:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

讓我這個老司機來跟你解釋一下這三行咒語的意義:

  • WP_DEBUG (true): 這就是總開關,設為 `true` 就代表「我要啟用偵錯模式!」WordPress 會開始顯示所有 PHP 錯誤、注意事項(Notices)和警告(Warnings)。
  • WP_DEBUG_LOG (true): 這是我最推薦的設定。它會將所有錯誤訊息,通通寫入到 /wp-content/debug.log 這個檔案裡。這樣一來,我們就有了一份完整的「犯罪紀錄」,可以事後慢慢分析,而且不會把錯誤訊息直接暴露給網站訪客。想深入了解如何運用這個錯誤日誌檔,可以參考我們的啟用錯誤日誌 (Error Log) 的教學文章
  • WP_DEBUG_DISPLAY (false): 這點超級重要!我把它設為 `false`,意思就是「不要在網頁上顯示錯誤訊息」。為什麼?因為把詳細的錯誤訊息(可能包含檔案路徑等敏感資訊)直接顯示在公開的網站上,等於是告訴駭客你家的後門在哪裡,這是非常非常危險的資安漏洞。工程師的小囉嗦:拜託,千萬不要在正式線上網站把這個設為 `true`,除非你真的只想測試個幾秒鐘,否則後果不堪設想。

設定好之後,重新載入你的網站。即使網站還是白畫面,現在你也可以透過 FTP 或主機後台的檔案管理員,去檢查 /wp-content/ 資料夾下是不是多了一個 debug.log 檔案。打開它,裡面很可能就寫明了是哪個外掛或佈景主題的哪一行程式碼出了問題。

第二層心法:裝上你的「偵錯義眼」- Query Monitor 外掛

如果說 `WP_DEBUG` 是讓 WordPress 開口說話,那 Query Monitor 這個外掛,簡直就是給你的網站裝上 X 光透視眼。它是我個人認為每個 WordPress 開發者都必須安裝的神器,沒有之一。

Query Monitor 到底有多神?

安裝並啟用 Query Monitor 後,你會在 WordPress 後台頂部的管理列看到一個新的數據面板。它提供的資訊多到令人髮指,我列舉幾個最常用的功能:

  • 資料庫查詢 (Queries): 它可以列出當前頁面載入時,執行的每一條 SQL 查詢指令。更厲害的是,它會標示出哪些查詢花了最久的時間,甚至是由哪個外掛或佈景主題觸發的。網站速度慢?兇手常常就藏在這裡。
  • PHP 錯誤: 即使你沒有開 `WP_DEBUG_DISPLAY`,Query Monitor 也會在後台面板 discreetly 地顯示 PHP 錯誤,方便又安全。
  • 鉤點與動作 (Hooks & Actions): 想知道目前頁面到底觸發了哪些 WordPress Hooks?每個 Hook 又掛載了哪些函式?Query Monitor 一目了然,對於開發客製化功能來說,這簡直是救星。
  • HTTP API 請求: 你的網站是不是有跟外部服務(例如:金流、天氣 API)串接?這個功能可以讓你看到所有對外的請求,以及花了多少時間,有沒有請求失敗。
  • 腳本和樣式 (Scripts & Styles): 列出所有載入的 CSS 和 JavaScript 檔案,幫助你檢查是否有載入衝突或是不必要的檔案,進而優化前端效能。

有了 Query Monitor,很多「感覺網站卡卡的」這種玄學問題,都能變成具體的數據問題。例如,你可能會發現某個社群分享外掛,在每個頁面都產生了 20 條重複的資料庫查詢,這就是效能瓶頸的明確證據。

終極手段:當問題超出 WordPress 的管轄範圍

有時候,問題的根源並不在 WordPress 本身,而是出在更底層的伺服器環境。這種情況下,就算你把 WordPress 的偵錯工具全開了,可能還是一無所獲。

檢查伺服器錯誤日誌 (Server Error Logs)

當你遇到 500 Internal Server Error,或是連 `wp-config.php` 都還沒執行網站就掛了(例如 PHP 版本不相容導致的 Fatal Error),這時候 WordPress 的 `debug.log` 是不會有任何紀錄的。你需要去查看伺ervidor 的錯誤日誌。

這個日誌檔案的位置每家主機商都不同,常見的名稱可能是 `error_log`、`php_error.log` 等。你可以在主機的 cPanel 控制台裡找到「錯誤日誌」之類的選項,或是直接詢問你的主機商。這裡的紀錄會更底層,能捕捉到 WordPress 無法處理的致命錯誤。

傳統但有效的「二分法」除錯

這是一個最原始,但也最經典的除錯方法,尤其是在懷疑外掛或佈景主題衝突時:

  1. 停用所有外掛: 如果問題解決了,那就表示是某個外掛搞的鬼。
  2. 逐一啟用外掛: 一次啟用一個外掛,每啟用一個就檢查一次網站。當啟用某個外掛後問題重現,恭喜你,找到兇手了!
  3. 切換預設佈景主題: 如果停用所有外掛後問題還在,試著將佈景主題切換到 WordPress 預設的(例如 Twenty Twenty-Four)。如果這樣就正常了,那問題就出在你原本的佈景主題上。

WordPress 內建的「網站健康度」工具中有一個「疑難排解模式」,它能為你(登入中的管理員)建立一個「乾淨」的瀏覽環境,自動停用所有外掛並切換到預設主題,但一般訪客看到的網站不受影響。這讓你在線上網站除錯時,不會影響到正常使用者,非常貼心。

總結:成為一個從容的 WordPress 偵錯專家

偵錯並不可怕,可怕的是沒有方法、沒有頭緒地亂試。記住我們的偵錯流程:

  1. 第一步: 永遠先開啟 `WP_DEBUG` 和 `WP_DEBUG_LOG`,讓證據說話。
  2. 第二步: 使用 Query Monitor 進行深度剖析,找出效能瓶頸和複雜的程式問題。
  3. 第三步: 如果問題依然存在,考慮是否為外掛/主題衝突,並善用「疑難排解模式」。
  4. 第四步: 對於 500 錯誤等底層問題,記得去翻閱伺服器的錯誤日誌。

建立起這套系統性的偵錯思維,不僅能讓你快速解決眼前的問題,更能幫助你深入理解 WordPress 的運作原理,從一個單純的網站管理者,蛻變成一個真正懂技術的專家。這條路需要練習,但相信我,每一次成功的 Debug,都會讓你功力大增,成就感滿滿!

延伸閱讀

還在為網站問題所困嗎?讓浪花科技來幫你!

看完了這篇,是不是覺得偵錯的世界博大精深?如果你嘗試了以上方法,卻仍然被網站的疑難雜症搞得一個頭兩個大,或者你需要更專業的網站效能健檢與優化服務,別再一個人奮鬥了!

我們浪花科技團隊擁有豐富的 WordPress 開發與維護經驗,擅長處理各種棘手的技術問題。立即點擊這裡填寫表單,與我們的專家聊聊,讓我們為你的網站進行專業診斷,找出根本問題,還你一個穩定、高效的線上門面!

 
立即諮詢,索取免費1年網站保固