cloudwp | WooCommerce 繁體中文使用手冊

如何設定與使用子主題

注意: 本文件針對建立與使用傳統子主題。若需建立區塊子主題的完整指南,以及了解傳統主題與區塊主題的差異,請參考 WooCommerce 區塊主題開發WordPress 區塊子主題開發

有時,你可能需要自訂主題或 WooCommerce,超越選項所能提供的範圍。這些指南將教你使用子主題自訂網站的基本方法。

什麼是子主題?

在開始前,理解什麼是子主題很重要。簡而言之,子主題是放在父主題上方的一層,用於進行修改而無需從頭開發新主題。使用子主題有兩個主要理由:

  • 主題開發者可以使用子主題作為提供主題變化的方式,類似於我們使用 Storefront 子主題的做法
  • 開發者可以使用子主題來放置對父主題或網站上任何外掛的客製化,因為子主題會優先於外掛與父主題

請閱讀此 WordPress Codex 指南

建立備份

在自訂網站前,應確保已備份網站,以防發生問題。更多資訊請見:備份 WordPress 內容

開始設定

首先,我們需要準備子主題。

建立子主題

首先,我們需要為子主題建立新的樣式表。建立名為 style.css 的新檔案,並放入此程式碼:

/*
Theme Name: Child Theme
Version: 1.0
Description: Child theme for Woo.
Author: Woo
Author URI: https://woocommerce.com
Template: themedir
*/

接著,我們需要變更 Template 欄位,使其指向已安裝的 WooTheme。在此範例中,我們將使用 Storefront 主題,安裝於 wp-content/themes/storefront/。結果如下:

/*
Theme Name: Storefront Child
Version: 1.0
Description: Child theme for Storefront.
Author: Woo
Author URI: https://woocommerce.com
Template: storefront
*/

/* --------------- Theme customization starts here ----------------- */

注意: 使用 Storefront 時,你不需要透過主題的 functions.php 檔案用 PHP 載入任何父主題樣式檔案,或使用 @import 將這些檔案載入子主題的 style.css 檔案,因為 Storefront 父主題已為你處理這些。

使用 Storefront 時,子主題只需要一個空白的 functions.php 檔案與一個 style.css 檔案即可運行。

上傳與啟用

你可以透過 FTP 客戶端或使用 WordPress 的新增主題選項上傳子主題。

  • 透過 FTP。 若使用 FTP,代表你直接進入網站的資料夾。這表示你需要主機的 FTP 存取權限,以便上傳新的子主題。若沒有此權限,請聯絡主機商,他們可以提供 FTP 登入詳細資訊,然後下載 FTP 程式來上傳檔案。
  • 透過 WP 管理後台。 若你建立子主題資料夾的 .zip 檔案,可以直接從 WordPress > 外觀 > 主題 > 新增 區段上傳至網站。

完成後,你的子主題將上傳至 wp-content/themes/ 中的新資料夾,例如 wp-content/themes/storefront-child/。上傳後,我們可以前往 WP 管理後台 > 外觀 > 主題 並啟用子主題。

自訂設計與功能

你的子主題現已準備好可以修改。目前它不包含任何客製化,讓我們看幾個如何在不觸碰父主題的情況下自訂子主題的範例。

設計客製化

讓我們一起做個範例,變更網站標題的顏色。在你的 /storefront-child/style.css 中加入這段:

.site-branding h1 a {
    color: red;
}

儲存檔案並重新整理瀏覽器後,你會看到網站標題的顏色已經變更。

模板變更

注意: 這不適用於 Storefront 子主題。任何對 Storefront 子主題檔案的客製化在更新時會遺失。建議不要直接客製化 Storefront 子主題檔案,而是將程式碼片段加入客製化外掛。我們已建立一個外掛來執行此操作。免費下載 Theme Customizations

但還有更多。你可以對主題資料夾中的模板檔案(*.php)做同樣的事。例如,若我們想要修改標頭中的某些程式碼,需要從父主題資料夾 wp-content/themes/storefront/header.php 複製 header.php 至子主題資料夾 wp-content/themes/storefront-child/header.php。複製到子主題後,我們編輯 header.php 並自訂任何想要的程式碼。子主題中的 header.php 會取代父主題的 header.php

WooCommerce 模板也是同樣的道理。若你在子主題中建立名為"WooCommerce"的新資料夾,可以在那裡修改 WooCommerce 模板,使其更符合網站的整體設計。更多關於 WooCommerce 模板結構的資訊可在此找到

功能變更

注意:子主題中的 functions.php 應該是空白的,不應包含父主題 functions.php 的任何內容。

子主題中的 functions.php 會在父主題的 functions.php 之前載入。若父主題中的函數是可插拔的,允許你從父主題複製函數到子主題的 functions.php 並取代父主題中的函數。唯一的要求是父主題的函數必須是可插拔的,基本上代表它包裹在條件 if 陳述式中,例如:

if ( ! function_exists( "parent_function_name" ) ) {
    parent_function_name() {
        ...
    }
}

若父主題函數是可插拔的,你可以將它複製到子主題 functions.php 並依你的需求修改函數。

模板目錄 vs 樣式表目錄

WordPress 在子主題中有些處理方式不同。若你的子主題中有模板檔案,必須修改 WordPress 引入檔案的方式。get_template_directory() 會參照父主題。若要使其使用子主題中的檔案,需要改用 get_stylesheet_directory();

更多來自 WP Codex 的資訊

子主題支援

雖然我們提供可輕鬆回答的基本子主題支援,但這仍屬於主題客製化範疇,請參考我們的支援政策以了解我們提供的支援範圍。我們強烈建議任何對子主題感到困惑的人使用 WordPress 論壇尋求協助。

範例子主題

在本文章頂部下載範例子主題以開始使用。將子主題與父主題一起放置於 wp-content/themes/ 資料夾中。

編輯此頁面

最後更新於 2025 年 12 月 5 日