先做這件事
WordPress 子主題:不要在沒有備份時連續試錯
子主題適合保存樣式與模板覆寫;與主題無關的功能應放獨立外掛。父主題更新後仍需檢查已覆寫模板是否過期。
本文聚焦「區分適合放子主題的呈現自訂與應放功能外掛的業務邏輯。」。對應的使用情境是:需要自訂主題樣式或模板,又不想更新時被覆蓋。。排查時請保存每一步的時間、畫面與日誌差異,才能把同時發生但無關的變更排除。
排查原則:先保存錯誤與現況,再從低風險、可回復的檢查開始;一次只改一個變因。
問題症狀
- 直接修改父主題後更新被覆蓋
- functions.php 堆疊所有第三方功能
- 子主題模板長期未跟進父主題
建立最小重現:從乾淨瀏覽器完成相同步驟,記錄每一次請求與回應。不能重現時,先查時間相關的排程、快取與日誌。
可能原因
- 01沒有分離呈現與功能。需要用錯誤日誌、Network 或隔離測試確認,不應只因時間接近就下結論。
- 02錯誤 enqueue 父主題樣式。需要用錯誤日誌、Network 或隔離測試確認,不應只因時間接近就下結論。
- 03複製整份模板造成維護負擔。需要用錯誤日誌、Network 或隔離測試確認,不應只因時間接近就下結論。

修改前備份
先建立檔案與資料庫完整備份,下載到站外位置並確認可以讀取;另保存外掛、主題、PHP 版本與目前錯誤畫面。
不要把同一主機上的自動快照當唯一備份。至少複製一份到獨立位置,並保存修改目標的單獨副本。
由低風險到高風險的排查順序
-
1. 備份父主題與現有自訂差異
這一步保持唯讀或可快速回復,先蒐集證據再改設定。 -
2. 建立含 Theme Name 與 Template 的 style.css
這一步保持唯讀或可快速回復,先蒐集證據再改設定。 -
3. 用 wp_enqueue_scripts 載入樣式
每完成一步就重測同一個最小重現,確認問題是否改變。 -
4. 只覆寫必要模板
每完成一步就重測同一個最小重現,確認問題是否改變。 -
5. 更新父主題後做差異與回歸測試
只把已在測試環境通過的最小變更套用到正式站,並立刻跑回歸測試。
先在 staging 重現,再把可證明有效的最小差異部署到正式站。正式站 QA 要涵蓋原問題與網站最重要流程。
如何確認修復成功
父主題可更新,自訂仍存在,沒有重複 CSS/JS,模板版本與 WooCommerce 狀態正常。
- 以原本的最小重現步驟再次測試。
- 檢查首頁、登入、REST API、表單與網站最重要的交易流程。
- 查看 PHP error log、瀏覽器 Console 與 Network 是否新增錯誤。
- 以 390px 手機寬度確認沒有版面級橫向溢位。
把症狀與證據對成一條排查路徑
| 目前看到的症狀 | 先驗證的原因 | 最小安全動作 |
|---|---|---|
| 直接修改父主題後更新被覆蓋 | 沒有分離呈現與功能 | 備份父主題與現有自訂差異 |
| functions.php 堆疊所有第三方功能 | 錯誤 enqueue 父主題樣式 | 建立含 Theme Name 與 Template 的 style.css |
| 子主題模板長期未跟進父主題 | 複製整份模板造成維護負擔 | 用 wp_enqueue_scripts 載入樣式 |
這張表不是用來直接判定根因,而是把「看到什麼、要查什麼、哪個動作可回復」放在同一列。若第一列的證據不成立,就不要跳到高風險修改。
如何還原
切回父主題並還原舊自訂版本;不要刪除子主題前先確認網站沒有依賴其功能。
正式還原前再備份一次故障現況。這份副本可能包含事故後新增資料,也是分析與差異補回的依據。
何時應停止自行操作
若沒有可還原備份、錯誤影響付款或個資、發現惡意程式,或需要直接修改資料庫但不理解關聯,應停止自行操作並尋求專業協助。
停止不是放棄,而是避免把可復原的錯誤變成停機、資料損失或資安事件。準備好時間線、備份、錯誤日誌與已嘗試步驟,能顯著縮短專業人員的診斷時間。
常見問題
可以直接在正式站測試嗎?
不建議。先備份並在測試環境重現,正式站只套用已驗證的最小變更。
需要關閉所有外掛嗎?
不應在沒有計畫時一次關閉。先保存清單,再用隔離或健康檢查方式逐步排除。
修好後要做什麼?
清除必要快取、重測主要流程、保存變更紀錄並確認監控沒有新錯誤。
官方文件與查核來源
以下文件用於核對 WordPress、WooCommerce、PHP 或資料庫行為。第三方外掛與主機設定仍需查閱該產品當前版本的正式文件。
