WordPress 加入程式碼後網站出錯?用 Code Snippets 找出並停用問題片段
在 WordPress 加入自訂 PHP 後,如果突然出現白畫面、前台 500 錯誤、後台無法登入,或只有特定頁面載入失敗,問題可能來自剛啟用的程式碼片段。比起直接修改佈景主題的 functions.php,使用 Code Snippets 集中管理小段 PHP,通常比較容易逐一停用與測試。
不過,Code Snippets 不是所有致命錯誤的萬用修復工具。如果 PHP 語法錯誤發生在外掛初始化之前、外掛本身無法載入,或網站已經完全無法執行 WordPress,仍可能需要透過主機檔案、資料庫或備份復原。
先從常見症狀判斷範圍
- 前台整站顯示 500 Internal Server Error:通常要先查 PHP 錯誤日誌,確認是否在載入某個片段時發生 Fatal error。
- 後台可以登入,但特定頁面出錯:可能是片段只在前台執行、只在管理介面執行,或與特定文章類型、短代碼或佈景主題衝突。
- 啟用片段後出現白畫面:常見原因包括少了分號、括號不完整、函式重複宣告、使用不存在的函式,或程式碼與目前 PHP/WordPress 版本不相容。
- 編輯器或儲存按鈕失效:也可能是 JavaScript 錯誤、權限問題或其他外掛衝突,不一定是 PHP 片段本身。
處理前先備份,並在測試環境驗證
正式網站準備停用或修改片段前,至少先完成以下項目:
- 備份資料庫與 wp-content,並確認備份檔案確實可以讀取。
- 記下目前啟用的片段名稱、用途、執行範圍與最近修改時間。
- 優先在測試站或暫存站重現問題,不要直接在尖峰時段於正式站反覆試錯。
- 準備主機控制台、SFTP 或 SSH 權限,以便後台無法登入時仍能處理。
- 不要把來路不明的 PHP 貼到 Code Snippets。這類程式碼可能包含後門、資料外洩功能或破壞資料庫的操作。
若要查看 WordPress 內建的除錯設定,可參考官方的除錯文件。正式站啟用除錯時,應避免把錯誤直接顯示給訪客,並妥善保護 debug.log。
安裝 Code Snippets
- 登入 WordPress 後台,前往「外掛」→「安裝外掛」。
- 搜尋 Code Snippets,確認開發者與下載來源,再按「立即安裝」。
- 安裝完成後按「啟用」。啟用前應先確認目前 PHP 版本符合網站與外掛需求。
- 安裝後,左側選單通常會出現「Snippets」或相近名稱的管理項目;不同版本或語言翻譯可能略有差異。
建議從官方的Code Snippets 外掛頁面安裝,不要從不明網站下載修改版 ZIP。
建立與設定程式碼片段
建立片段時,請使用能清楚描述用途的名稱,例如「限制媒體上傳類型」或「訂單完成後通知」。不要使用「測試」、「新程式碼」這類難以追蹤的名稱。描述欄位則記錄來源、修改日期、負責人與預期影響。
- 把每一個獨立功能拆成一個片段,避免將十幾項功能全部放在同一段程式碼中。
- 確認程式碼是否需要在前台、管理介面或整個網站執行。若外掛提供執行範圍選項,先選擇最小必要範圍。
- 依照編輯器提示檢查語法;不要在 Code Snippets 編輯器中重複加入不需要的
<?php標記,實際規則要以該版本介面說明為準。 - 儲存後先保持停用,或只在測試站啟用,再逐項驗證。
Code Snippets 適合管理短小、可獨立測試的 PHP 程式碼,例如篩選器、動作鉤子或簡單的網站設定。大型功能、第三方套件或需要多個檔案的功能,應考慮製作專用外掛或使用版本控制,不要全部塞進單一片段。
網站出錯時,逐一找出問題片段
如果仍能登入後台,請依照以下順序操作:
- 先開啟無痕視窗,確認前台與後台的實際症狀,並記下錯誤發生的網址、時間與操作步驟。
- 前往 Code Snippets 的片段清單,依「最近修改」或啟用狀態排序。
- 先停用最近新增或最近修改的片段。每次只停用一個,避免一次改動太多而無法判斷結果。
- 清除網站快取、伺服器快取、CDN 快取與瀏覽器快取,再重新測試原本出錯的頁面。
- 如果停用後恢復正常,先保留該片段停用,接著檢查錯誤日誌與程式碼變更,不要只靠重新啟用確認。
- 如果問題仍在,記錄這次結果,再停用下一個可疑片段。若片段數量很多,可先在測試站以二分法停用一半,縮小範圍後再逐一確認。
伺服器錯誤日誌通常比畫面上的 500 訊息更有用。請尋找 PHP Fatal error、Parse error、Uncaught Error 或檔案路徑與行號。若路徑指向 Code Snippets 儲存的片段,將名稱、錯誤時間與行號一併記錄給維護人員。
停用後的驗證清單
- 用未登入狀態測試首頁、主要落地頁、文章、頁面與表單。
- 用管理員與一般使用者角色分別測試後台,確認選單、編輯器與儲存功能正常。
- 檢查瀏覽器開發人員工具的 Console 與 Network,確認沒有因片段停用而產生新的錯誤。
- 若網站有快取或 CDN,確認訪客實際取得的是最新內容。
- 檢查網站健康狀態、排程、登入、搜尋、媒體上傳與重要第三方整合。
- 觀察錯誤日誌一段時間,確認相同錯誤沒有持續增加。
不要因為首頁恢復就立刻把片段重新啟用。應先在測試環境修改程式碼,補上必要的條件判斷,並確認函式名稱、鉤子時機、資料型別與 WordPress/PHP 版本相容後,再安排變更時段部署。
完全無法登入時的復原方式
若啟用片段後前台與後台都無法載入,不要一直重新整理或重複執行安裝。先保留錯誤時間與日誌,再依照主機提供的檔案或資料庫工具復原。
- 使用主機檔案管理器或 SFTP:先備份目前檔案,再暫時將 Code Snippets 外掛目錄重新命名,使 WordPress 無法載入該外掛。這通常能讓整個外掛停用,但會同時停用其中所有片段。
- 使用資料庫工具:先完整備份資料庫,再依 Code Snippets 版本與資料表結構,找出片段設定資料並將可疑片段標為停用。不要直接刪除資料列,也不要在未確認資料表與欄位前套用網路上的 SQL。
- 使用備份還原:若已造成資料異常、檔案被覆寫或無法確認變更內容,從最近一次可用的完整備份還原,並先在測試環境確認備份狀態。
- 請主機商協助:沒有 SFTP、資料庫工具或錯誤日誌權限時,請主機商協助暫停外掛、提供 PHP 錯誤日誌或還原指定時間點。
WordPress 也可能在特定條件下提供 Recovery Mode,讓管理員登入並停用造成錯誤的元件;但這不是所有主機環境或所有致命錯誤都一定可用,仍要以錯誤通知與主機日誌為準。可參考官方的Recovery Mode 文件。
避免下次再次發生
- 每個片段只處理一項功能,並在描述中記錄需求單號、作者、來源與修改日期。
- 正式部署前,在與正式站相同的 PHP、WordPress、佈景主題與外掛版本上測試。
- 先以停用狀態儲存,通過前台、後台、快取與錯誤日誌檢查後再啟用。
- 把片段內容納入 Git 或變更管理流程,至少保留啟用前的版本。
- 定期確認備份可還原,不要把「有產生備份檔」當成「一定能復原」。
- 遇到不理解的混淆程式碼、遠端下載、動態執行或要求輸入管理員密碼的片段,先停止使用並請資安或開發人員檢查。
參考來源
如果停用片段後仍然覺得後台變慢,可以搭配站內的 Query Monitor 排查外掛與資料庫查詢;需要進一步確認 WordPress 是否進入復原流程時,也可參考官方的 Recovery Mode 說明。









臉書留言
一般留言