---
title: 客製碼放子主題還是 Code Snippets？
description: 兩種都不會被更新蓋掉；差在綁佈景還是綁外掛、執行的時間點，以及寫錯或被停用時會發生什麼事。
url: "https://wptoolbear.com/docs/child-theme-functions-or-code-snippets/"
updated: "2026-09-13"
category: 更新與相容（外掛／PHP／WordPress）
---

# 客製碼放子主題還是 Code Snippets？

**快速答案：**兩者都不會被更新蓋掉；會被蓋掉的是直接寫進「母主題」functions.php 或外掛檔案裡的程式碼。差別在綁在哪裡：子主題的 functions.php 綁佈景，換佈景就失效，寫錯一個字整站出現嚴重錯誤；Code Snippets 綁那支外掛，可以一段段開關、寫錯會自動停用，但外掛一被停用，所有片段會一起靜靜失效。

## 為什麼會這樣

佈景或外掛更新時，WordPress 是把整個資料夾換成新版，寫在裡面的修改一定消失。子主題是另一個資料夾，母主題更新碰不到它；Code Snippets 把程式碼存在資料庫，外掛本身更新也不影響片段內容。

兩者還有一個常被忽略的差別：執行時間點。片段外掛的程式通常在外掛載入階段就執行，子主題的 functions.php 要等所有外掛都載入後才輪到。用來「移除某支外掛預設行為」的程式碼，如果比那支外掛還早執行，就等於沒寫——外掛廠商的範例碼常註明要放 functions.php，原因就在這裡。

## 怎麼處理

### 怎麼選

- **跟佈景有關的**（版型、頁首頁尾輸出、佈景專屬的掛勾）：放子主題。
- **跟佈景無關的網站功能**（結帳欄位、發票或物流的修補、寄信調整）：放 Code Snippets，或做成一支自己的小外掛，將來換佈景不用搬。
- **絕對不能停的關鍵功能**：放 wp-content/mu-plugins，它會自動載入、後台無法停用。

### 不管放哪都要做的事

1. 留一份清單：每段程式碼放在哪、做什麼、誰要求的、哪天加的。
2. 修改前先備份。片段寫壞進不了後台時，可在 wp-config.php 加上 `CODE_SNIPPETS_SAFE_MODE` 常數暫停全部片段，救回後再逐段檢查。
3. 換佈景、停用外掛、降級方案前，先對清單看會牽動哪些程式碼。
4. 升 PHP 版本時把這些自訂碼一起納入測試，舊寫法最容易在新版 PHP 出錯（見[升級 PHP 8 前的檢查](https://wptoolbear.com/docs/php8-upgrade-staging-checklist/)）。
5. 資安檢查別漏了片段清單：片段外掛能執行任意程式碼，拿到管理員權限的攻擊者也會把惡意程式塞在這裡。我們做資安掃描時，片段清單跟外掛目錄、uploads 是一起查的。

## 我們實際遇過的情況

一家電商某天建立物流出貨單時突然報錯，查下來是一段修補中文欄位的程式碼片段被停用了。前台看不出異狀，問題直到出貨才浮現（出貨單的其他排查見[超商物流單產生不了](https://wptoolbear.com/docs/ecpay-cvs-shipping-label-batch-print/)）。這也是清單的用處：知道有這段程式碼存在，才會想到去查它。

另一個有出價競標功能的商店，外掛廠商給了一段調整「出價後直接購買按鈕」的程式碼，放進 Code Snippets 怎麼試都沒作用；廠商的答覆是這段要放在子主題的 functions.php，不能放片段外掛——這類限制，多半就出在上面說的執行時間點。

## 什麼時候該找人

改完片段或 functions.php 後整站嚴重錯誤、後台進不去，要從主機端改檔救回（見[白畫面的排查順序](https://wptoolbear.com/docs/wordpress-critical-error-white-screen/)）；或是接手的網站沒人說得清哪裡藏了哪些自訂碼，升級前需要有人逐一盤點，再決定各自該搬到哪裡。

## 常見問題

### 佈景主題更新會蓋掉 functions.php 裡的程式碼嗎？

改在母主題 functions.php 的會被蓋掉；放在子主題 functions.php 或 Code Snippets 的不會。

### 為什麼廠商給的程式碼放 Code Snippets 沒作用？

片段外掛較早執行，要移除外掛預設行為的程式碼可能跑在外掛之前而失效，改放子主題 functions.php 即可。

### Code Snippets 寫壞了進不了後台怎麼辦？

在 wp-config.php 加上 CODE_SNIPPETS_SAFE_MODE 常數暫停所有片段，救回後台再修正那一段。

想有人幫你盤點與管理這些自訂程式碼：[網站守護方案](https://wptoolbear.com/guardian/)。改壞了進不去後台：[網站救援當日受理](https://wptoolbear.com/rescue/)。
