WordPress 主題開發入門:從零開始打造你嘅第一個自訂主題

3分鐘閱讀
2026-03-11
2026-06-03
2,615
當你透過以下連結購物,我會獲得佣金,對你嚟講冇額外成本。.

點解要自己開發WordPress主題

接觸咗大量現成主題之後,開發者通常都會有自己整主題嘅念頭。咁唔單止係為咗做到獨一無二嘅視覺設計,更加係為咗可以完全控制啲程式碼。市面上嘅主題好多時為咗滿足廣泛需求,會加載咗好多你可能用唔到嘅功能同程式碼,咁樣可能會令網站行得慢、有安全風險,或者將來更新嗰陣出現兼容性問題。

由零開始整主題,你可以確保啲程式碼精簡、高效同安全。呢個過程亦係深入了解WordPress核心運作機制嘅絕佳途徑。你會學到模板層次結構係點樣運作嘅,數據係點樣由數據庫查詢出嚟再顯示喺頁面上,同埋點樣用functions.php檔案透過動作同過濾器掛鈎嚟擴展功能。最後,你會得到一個完全按照你個項目需求而打造嘅工具,佢嘅維護同更新都完全喺你掌握之中。

開始前嘅環境同工具準備

喺寫第一行程式碼之前,建立一個高效嘅本地開發環境至關重要。咁樣可以令你喺唔影響線上網站嘅情況下自由噉進行測試同除錯。你可以揀集成環境軟件,例如 Local by Flywheel、XAMPP 或者 MAMP,佢哋可以一鍵安裝 Apache、MySQL 同 PHP。確保你用嘅 PHP 版本同你嘅 WordPress 安裝要求相符,通常係 7.4 或者更高版本。

推薦閱讀 WordPress主題開發入門指南:由零開始整自訂主題

程式碼編輯器係你嘅主要武器。Visual Studio Code、PhpStorm 或者 Sublime Text 都係強大嘅選擇,佢哋提供語法高亮、程式碼補全同除錯工具,能夠極大提升開發效率。另外,你仲需要一個現代嘅瀏覽器(例如 Chrome 或者 Firefox)同佢嘅開發者工具,用嚟實時除錯 HTML、CSS 同 JavaScript。

UltaHost WordPress 主機
30日退款保證,無限頻寬同數據庫,免費DDoS防護,買3年優惠50%

最後,你需要一個新嘅、乾淨嘅 WordPress 安裝。唔好喺你嘅主要業務網站上面直接進行主題開發測試。安裝完成之後,喺後台嘅「設定 -> 永久連結」入面揀一個非默認嘅連結結構(例如「文章名」),咁樣有助於從一開始就建立正確嘅重寫規則。

構建主題基礎檔案結構

一個 WordPress 主題本質上係一個喺/wp-content/themes/目錄下嘅資料夾,包含一系列特定用途嘅檔案。我哋從最基本嘅檔案開始創建。

首先,喺你嘅/wp-content/themes/目錄下創建一個新資料夾,命名為你嘅主題,例如my-first-theme。所有主題文件都會擺喺呢度。

然後,創建兩個絕對必需嘅核心檔案。第一個係樣式表檔案style.css,佢嘅頭部註釋唔單止用嚟定義樣式,更加係 WordPress 識別主題嘅「身份證」。佢嘅內容應該好似以下咁樣:

推薦閱讀 WordPress主題開發實戰:從零到一開始建構專業級網站主題

/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme/
Author: Your Name
Author URI: https://example.com/
Description: 一个从零开始构建的入门级 WordPress 主题。
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-first-theme
*/

第二個必需文件係index.php,佢係所有頁面嘅預設模板。作為起點,佢可以係成個網站最基本嘅 PHP/HTML 結構:

<!DOCTYPE html>
<html no numeric noise key 1005>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php wp_head(); ?>
</head>
<body no numeric noise key 1002>
    <header>
        <h1>我嘅第一個主題</h1>
    </header>
    <main>
        <?php
        if ( have_posts() ) :
            while ( have_posts() ) :
                the_post();
                the_content();
            endwhile;
        endif;
        ?>
    </main>
    <footer>
        <p>© 我嘅網站</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

而家,你嘅主題已經可以俾 WordPress 識別同啟動喇,雖然佢功能極之有限。

理解同應用模板層次結構

WordPress 嘅核心魅力之一在於佢強大嘅「模板層次結構」。呢套規則決定咗對於網站嘅任何頁面請求,WordPress 會自動搵同載入邊個模板檔案嚟呈現內容。掌握佢,你就掌握咗主題開發嘅鎖匙。

hosting.com 共享主機
高效能,配備 AMD EPYC 處理器、NVMe SSD 儲存同 LiteSpeed,提供全天候專業內部支援,採用先進安全措施,包括 SSL、暴力破解、惡意軟件同 DDoS 防護,可節省高達 73%。

佢嘅工作流程可以簡化為:當一個頁面被請求時,WordPress 會基於頁面嘅類型(例如文章頁、頁面、分類存檔)同某啲特定條件(例如文章ID、分類slug),按照一個明確嘅優先級列表去搵模板檔案。舉個例,對於一篇單獨嘅博客文章,WordPress 會依次查找:single-{post-type}-{slug}.phpsingle-{post-type}.phpsingle.php… 最後singular.php,直到搵到第一個存在嘅檔案。如果都搵唔到,最終會回退到index.php

等我哋實踐一下,創建幾個關鍵嘅模板檔案。首先係header.php同埋footer.php,用嚟將頁面嘅頭部同底部代碼模組化。將index.php入面嘅頭部同底部代碼分別搬入呢兩個檔案,再用get_header()同埋get_footer()函數調用佢哋。

跟住,創建一個page.php用嚟顯示單獨嘅頁面,一個single.php用嚟顯示單獨嘅文章。你可以喺呢啲模板入面用the_title()同埋the_content()等模板標籤嚟輸出特定內容。

推薦閱讀 WordPress 主題開發入門:從零開始構建你嘅第一款自訂主題

透過 functions.php 檔案擴展主題功能

主題嘅functions.php檔案係你嘅「工具箱」,佢容許你透過加入 PHP 代碼同調用 WordPress 內置嘅函數、掛鉤嚟為主題添加功能同修改行為。呢個檔案喺主題初始化時會自動載入。

一個基本且重要嘅用途係註冊菜單同側邊欄(小工具區域)。例如,使用register_nav_menus()函數嚟為主題聲明導航菜單位置:

InterServer 共享主機
共享主機:每月1TB,只需£2.50;首月只需£0.10,使用優惠碼 tryinterserver。461個雲端應用程式腳本,一鍵安裝。
function mytheme_setup() {
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-first-theme' ),
        'footer'  => __( '页脚菜单', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'mytheme_setup' );

同樣,你可以用register_sidebar()函數嚟創建小工具區域。另一個關鍵任務係透過add_theme_support()函數為你嘅主題啟用各種功能,例如文章縮略圖、自訂標誌、HTML5 表單支援等等。

除此之外,你仲需要正確咁載入你嘅樣式表同腳本檔案。千祈唔好直接喺模板檔案度用 link 或者 script 標籤硬編碼引入。正確嘅方法係使用wp_enqueue_style()同埋wp_enqueue_script()功能,並將佢哋安裝到wp_enqueue_scripts喺呢個鉤子上面,咁樣 WordPress 先至可以管理依賴關係同加載順序。

應用樣式同埋加入互動性

一個冇樣式嘅主題只係得個骨架。通過編寫 CSS,你可以定義網站嘅視覺外觀,包括佈局、顏色、字體同埋響應式設計。建議用模組化嘅方式組織你嘅 CSS 代碼,可以考慮用好似 Sass 咁樣嘅預處理器,但核心仍然係對style.css嘅編寫。

為咗確保跨瀏覽器兼容性同響應式佈局,你嘅 CSS 應該從重置或者標準化樣式開始,跟住定義全局樣式,最後先至係針對特定組件嘅樣式。好好利用 WordPress 嘅body_class()同埋post_class()函數,佢哋會根據當前頁面動態輸出 CSS 類名,令你能够精準噉定位同編寫樣式。

互動性就主要依賴於 JavaScript。同樣式表類似,你應該用wp_enqueue_script()嚟安全噉加入 JavaScript 檔案。一個最佳實踐係將你嘅腳本註冊同封裝喺一個函數入面:

function mytheme_scripts() {
    wp_enqueue_style( 'mytheme-style', get_stylesheet_uri() );
    wp_enqueue_script( 'mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );

留意最後一個參數true,呢個意思係個腳本會喺頁面底部載入,通常都係一個好習慣。對於需要依賴 jQuery 等函式庫嘅腳本,必須喺陣列參數度聲明依賴。

摘要

構建你第一個 WordPress 自訂主題係一個循序漸進嘅過程,由理解「點解需要自己開發」開始,經過環境搭建、創建基礎檔案結構,到深入掌握模板層次結構嘅精髓,再透過functions.php呢個強大嘅中樞嚟擴展功能,最後透過 CSS 同 JavaScript 賦予佢生命同個性。呢個過程唔單止教你點樣創建一個主題,更重要嘅係令你明白 WordPress 點樣運作、點樣將數據同表現分開嘅哲學。

實踐係最好嘅老師。唔好俾一開始嘅複雜度嚇親,由最簡單嘅index.php同埋style.css開始,激活你嘅主題,然後逐步加新嘅模板檔案同功能。每次加少少,測試下,觀察變化。參考 WordPress 官方文檔同核心代碼係學習嘅最佳資源。當你完成咗第一個主題,就算佢好簡單,你都已經踏入咗 WordPress 開發者嘅行列。

常見問題

開發主題需要精通 PHP 嗎

精通 PHP 固然對高級開發有好大幫助,但入門 WordPress 主題開發唔需要你已經係 PHP 專家。你只需要掌握 PHP 嘅基礎語法,例如變數、陣列、函數、條件判斷同循環。WordPress 提供咗大量內置函數(模板標籤)同清晰嘅掛鉤系統,你可以好似砌積木咁用佢哋。喺學習過程中,你會自然而然咁提升你嘅 PHP 技能。

我嘅主題點樣喺前台顯示文章列表

喺首頁、分類或者存檔頁面顯示文章列表,係主題嘅常見需求。你需要喺相應嘅模板檔案(例如home.phparchive.phpindex.php)入面使用 WordPress 主循環。通常,你會用if ( have_posts() )同埋while ( have_posts() )嘅組合嚟遍歷文章,並喺循環入面使用the_title()the_excerpt()the_permalink()等函數嚟輸出每篇文章嘅標題、摘要同連結。

點樣為主題加自訂設定頁面

當你嘅主題功能變得複雜,可能需要為用戶提供一啲配置選項,例如切換顏色方案或者上傳 Logo。呢個時候,你可以利用 WordPress 嘅「自訂器」或者「選項頁面」API。對於較新嘅、推薦嘅方法係使用「主題自訂器」,佢透過喺functions.php入面用$wp_customize->add_setting()同埋$wp_customize->add_control()嚟加設定同控件,為用戶提供即時預覽嘅配置體驗。

子主題同父主題嘅關係係咩

子主題係一個繼承另一個主題(父主題)所有功能、款式同模板嘅強大特性。佢嘅主要目的係喺唔直接修改父主題檔案嘅前提下,對其進行定制、覆蓋同擴展。創建一個子主題非常快速,你只需要一個包含必要頭部註釋嘅style.css同一個functions.php檔案。當 WordPress 搵唔到子主題中某個模板檔案時,佢會自動去父主題度搵。呢個係安全更新父主題同時又保留自定義修改嘅最佳實踐。