直接修改 WordPress 主題檔案看似最快,但主題更新後,改動很可能被新版本覆蓋。子主題會繼承父主題的設計和功能,同時把你的 CSS、PHP 與模板修改保存在獨立位置。這篇說明甚麼情況需要子主題、如何建立,以及修改後應如何測試和維護。
甚麼情況需要使用子主題
如果你只是在後台調整顏色、字型或版面選項,通常不需要子主題。當你要加入自訂 PHP、修改主題模板、覆蓋 WooCommerce 版面,或保存大量 CSS 時,子主題會更安全。它的目的不是令網站更快,而是把自訂程式與父主題更新分開。
建立前先備份和準備測試環境
修改主題可能令前台出現錯誤,正式網站應先備份檔案和資料庫,並在 staging 環境操作。確認你能透過主機檔案管理員或 SFTP 還原檔案;若 PHP 錯誤令後台無法登入,仍可在外部停用有問題的子主題。
建立子主題資料夾
在 `wp-content/themes` 建立新的資料夾,名稱可使用父主題名稱加上 `-child`。資料夾名稱只使用小寫英文字母、數字和連字號,避免日後搬家或部署時出現路徑問題。不要把子主題檔案直接放進父主題資料夾。
加入必要的 style.css
子主題至少需要 `style.css`,檔案開首的主題資料必須包括名稱和 `Template`。其中 `Template` 的值要與父主題資料夾名稱完全相同,而不是後台顯示的主題名稱。拼寫或大小寫不一致時,WordPress 會顯示父主題不存在。
正確載入父主題樣式
不要再使用舊式 CSS `@import` 載入父主題,因為它會增加額外請求,也較難控制順序。較穩定的方法是在子主題的 `functions.php` 使用 WordPress enqueue 功能載入樣式。部分現代主題已自動處理父子樣式,實作前應先查看主題官方文件。
在 functions.php 加入自訂功能
子主題的 `functions.php` 不會取代父主題檔案,而是與它一起載入。加入程式時應使用獨特的函式名稱或命名空間,避免與主題和外掛重複。每次只加入一小段並測試;在檔案尾部通常不需要 PHP 結束標籤,可避免多餘空白造成標頭錯誤。
覆蓋主題模板檔案
要修改模板時,把父主題對應檔案複製到子主題相同的相對路徑,再作最小改動。不要一次複製整個父主題,否則日後難以知道哪些檔案真正有修改。WordPress 會優先使用子主題中的模板,而沒有覆蓋的部分則繼續由父主題提供。
使用 CSS 變數和區塊樣式
現代區塊主題可能主要使用 `theme.json` 控制顏色、間距和字型。若父主題支援,應優先透過子主題的 `theme.json` 或 CSS 變數調整全站設計,比逐個選擇器覆蓋更容易維護。加入自訂 CSS 時亦要限制作用範圍,避免一條全域規則意外影響後台或第三方元件。
啟用後完成全面測試
啟用子主題後,測試首頁、文章、搜尋、404、表單、手機選單,以及會員或購物流程。清除 WordPress、主機和 CDN 快取,再用無痕視窗檢查。亦要查看伺服器 PHP 錯誤紀錄,因為部分警告未必立即顯示在畫面上。
父主題更新後檢查模板差異
子主題不會阻止父主題更新,但你覆蓋的模板不會自動取得新版修改。每次父主題大型更新後,查看更新紀錄並比較相關模板。如果父主題修復了安全問題或改變函式接口,應把必要變更合併到子主題版本,再重新測試。
不適合放進子主題的功能
與網站內容或商業邏輯密切相關的功能,例如自訂內容類型、API 整合和重要短代碼,通常更適合放入獨立外掛。否則日後更換主題時,功能也會一併消失。子主題應集中處理視覺、模板和與父主題緊密相關的修改。
結語
子主題的價值在於把自訂修改與父主題更新分離。只複製需要覆蓋的檔案、記錄每項改動、在測試環境驗證,並於父主題更新後比較模板差異,就能在保留設計彈性的同時降低維護風險。









