Bermula dari kosong: Panduan Langsung untuk Membangunkan Tema WordPress yang Dikustomisasi

Bacaan 3 minit
2026-03-13
2026-06-06
2,261
Saya mendapat komisen apabila anda membeli-belah melalui pautan di bawah, tanpa sebarang kos tambahan kepada anda.

Membangunkan tema WordPress yang diperibadikan adalah cara terbaik untuk mewujudkan kreativiti anda dalam bentuk laman web sebenar, serta mengawal sepenuhnya penampilan dan fungsi laman web tersebut. Berbeza dengan tema sedia ada, tema yang diperibadikan membenarkan anda bermula dari kosong dan membina laman web yang unik yang memenuhi keperluan anda atau pelanggan anda. Walaupun proses ini mungkin kelihatan menakutkan, ia boleh dilakukan dengan jelas selagi anda mengikuti garis panduan rasmi WordPress dan langkah-langkah yang ditetapkan. Artikel ini akan membimbing anda melalui proses penuh, daripada membuat fail asas hingga melaksanakan fungsi-fungsi utama laman web.

Preparasi dan pembinaan persekitaran.

Sebelum menulis baris kod pertama, anda memerlukan persekitaran pembangunan yang sesuai dan perancangan projek yang jelas.

Pembinaan persekitaran pembangunan tempatan

Pertama sekali, anda perlu membangunkan persekitaran pelayan PHP pada komputer lokal anda. Perkara yang disyorkan adalah menggunakan pakej perisian yang telah disatukan, seperti XAMPP, MAMP, atau Local by Flywheel. Alat-alat ini membenarkan anda memasang Apache, MySQL, dan PHP dengan satu klik sahaja, menjimatkan masa dan mengelakkan proses konfigurasi yang rumit. Sebagai contoh, selepas memasang XAMPP, fail-fail laman web anda biasanya terletak di dalam direktori pemasangan XAMPP itu sendiri.htdocsDalam folder tersebut. Di sini, anda boleh membuat folder baru, sebagai contoh…my-custom-themeIni akan menjadi direktori akar untuk tema anda.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Belajar membangunkan tema WordPress daripada awal: panduan utama untuk mencipta laman web yang personal.

Pengaturan Struktur Projek Topik

Sebuah tema WordPress standard memerlukan sekurang-kurangnya dua fail utama:style.cssindex.phpNamun, sebelum projek bermula, adalah disyorkan untuk merancang struktur direktori yang jelas dan boleh diperluas. Struktur tema moden yang tipikal mungkin kelihatan seperti berikut:

UltaHost – Penyedia Hosting untuk WordPress
Jaminan pemulangan wang dalam tempoh 30 hari, lebar jalur dan pangkalan data yang tidak terhad, perlindungan DDoS percuma, diskaun 50% untuk pembelian selama 3 tahun.
my-custom-theme/
├── style.css          // 主样式表,包含主题信息头
├── index.php          // 主模板文件
├── functions.php      // 主题功能与函数文件
├── header.php         // 头部模板
├── footer.php         // 底部模板
├── sidebar.php        // 侧边栏模板
├── page.php           // 页面模板
├── single.php         // 文章页模板
├── archive.php        // 文章归档页模板
├── 404.php            // 404错误页模板
├── search.php         // 搜索结果页模板
├── assets/            // 静态资源目录
│   ├── css/           // 样式文件
│   ├── js/            // 脚本文件
│   └── images/        // 图片资源
└── templates/         // 可选的模板部件目录

Mempunyai struktur yang baik membantu dalam pengurusan dan penyelenggaraan kod.

Mencipta fail tema utama

Ini merupakan asas untuk membina sebuah tema. Header maklumat dalam fail tersebut akan memberitahu WordPress bahawa ini adalah sebuah tema yang sah.

Mendefinisikan fail gaya tema (theme style sheet)

style.cssIa merupakan “kad pengenalan” tema tersebut, dan blok komen di bahagian atas (header maklumat tema) adalah penting. WordPress bergantung pada maklumat ini untuk mengenal pasti dan memaparkan tema anda di bahagian belakang (backend). Buatlah satu.style.cssFail, dan masukkan kandungan berikut:

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-custom-theme
Author: 你的名字
Author URI: https://yourwebsite.com
Description: 这是一个为了学习从零开始开发而创建的自定义WordPress主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/

Di antaranya,Text DomainIa digunakan untuk penyesuaian antarabangsa (internationalization atau i18n) dan merupakan penanda unik untuk tema tersebut, biasanya sama dengan nama folder tema tersebut. Selepas blok komen ini, anda boleh mula menulis kod gaya CSS (Cascading Style Sheets) anda.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Pembangunan Tema WordPress: Pelajaran Praktikal Komprehensif Dari Pemula Hingga Pakar

Membina fail templat asas

index.phpIni merupakan templat laluan kembali (default fallback template) untuk semua halaman. Ia merupakan yang paling asas, tetapi kita boleh bermula dengan struktur HTML yang mudah. Pertama sekali, buatlah satu…header.phpFail ini digunakan untuk menyimpan bahagian kepala dokumen (header).<!DOCTYPE html>Untuk membuka…<body>Bahagian label (…) danfooter.phpIa digunakan untuk menyimpan tag penutup dan kandungan kaki halaman (footer).

header.phpContoh:

<!DOCTYPE html>
<html no numeric noise key 1006>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <p><strong>Halo, saya ingin mengucapkan terima kasih kerana melawat laman web saya.</strong></p>
</head>
<body no numeric noise key 1003>
    <header>
        <h1><a href="/ms/</?php echo esc_url( home_url( '/' ) ); ?>">\n</a></h1>
        <p><?php bloginfo( 'description' ); ?></p>
    </header>

Perhatikan penggunaan yang telah dibuat.wp_head()Hook (pautan fungsi) adalah komponen penting dalam WordPress, yang diperlukan untuk menambah skrip dan gaya (styles) kepada kod asas WordPress, plugin, serta tema.

hosting.com Hosting Bersama
Prestasi tinggi, menampilkan CPU AMD EPYC, storan SSD NVMe dan LiteSpeed, dengan sokongan pakar dalaman 24/7, langkah keselamatan canggih termasuk SSL, perlindungan serangan paksa kata laluan, perisian hasad dan DDoS, menjimatkan sehingga 73%.

footer.phpContoh:

    <footer>
        <p>©  . All rights reserved.</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

Di sini telah digunakan…wp_footer()Kuku.

Sekarang, milik anda…index.phpIa boleh dibuat sangat ringkas:

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Lengkap Pembangunan Tema WordPress: Membina Tema Tahap Profesional Dari Kosong

<p>

<main>
    
            <article>
                <h2><?php the_title(); ?></h2>
                <div><?php the_content(); ?></div>
            </article>
        <p>
        <p><?php _e( 'Sorry, no posts matched your criteria.', 'my-custom-theme' ); ?></p>
    <?php endif; ?>
</main>

\n

Templat ini menggunakan gelung teras (The Loop) dari WordPress untuk menampilkan senarai artikel.

Mengintegrasikan ciri-ciri dan kandungan dinamik

Sebuah tema yang sebenar bukan sekadar halaman statik; ia perlu berinteraksi dengan kod asas WordPress, memuatkan sumber-sumber yang diperlukan, dan melaksanakan fungsi-fungsi dinamik.

Hosting Bersama InterServer
Hosting kongsi: 1TB/bulan pada $2.50 USD, bulan pertama pada $0.10 USD dengan kod promo tryinterserver. 461 skrip aplikasi awan tersedia untuk pemasangan satu klik.

Menulis fail fungsi tema

functions.phpIni adalah topik anda “Otak” (Brain), yang digunakan untuk menambahkan fungsi-fungsi tertentu, menu pendaftaran, bar sisi (sidebar), memuatkan gaya (styles), skrip (scripts), dan lain-lain. Buatlah fail ini dan mula menambahkan fungsi-fungsi asas.

<?php
// 主题设置
function my_custom_theme_setup() {
    // 让WordPress管理文档标题
    add_theme_support( 'title-tag' );
    // 启用文章和评论的RSS feed链接
    add_theme_support( 'automatic-feed-links' );
    // 启用文章缩略图(特色图像)
    add_theme_support( 'post-thumbnails' );
    // 注册一个导航菜单
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-custom-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_custom_theme_setup' );

// 注册小工具区域(侧边栏)
function my_custom_theme_widgets_init() {
    register_sidebar( array(
        'name'          =&gt; __( '主侧边栏', 'my-custom-theme' ),
        'id'            =&gt; 'sidebar-1',
        'description'   =&gt; __( '在此添加小工具。', 'my-custom-theme' ),
        'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
        'after_widget'  =&gt; '</section>',
        'before_title'  =&gt; '<h2 class="widget-title">',
        'after_title'   =&gt; '</h2>'add_action( 'widgets_init', 'my_custom_theme_widgets_init' );

add_theme_support()Fungsi ini digunakan untuk mengaktifkan ciri tema (theme feature).register_nav_menus()register_sidebar()Maka, daftarkan menu navigasi dan kawasan alat tambahan (tools) secara berasingan.

Memuatkan gaya dan skrip

Cara yang betul untuk memuatkan sumber adalah dengan mengimport fail gaya (style sheet) dan fail JavaScript melalui…wp_enqueue_scriptsQueue for the hook. At your…functions.phpTambahkan yang berikut ke dalam teks:

function my_custom_theme_scripts() {
    // 加载主样式表
    wp_enqueue_style( 'my-custom-theme-style', get_stylesheet_uri() );

// 加载自定义JavaScript文件
    wp_enqueue_script( 'my-custom-theme-navigation', get_template_directory_uri() . '/assets/js/navigation.js', array(), '1.0.0', true );

// 如果使用评论功能,加载评论回复脚本(仅当需要时)
    if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
        wp_enqueue_script( 'comment-reply' );
    }
}
add_action( 'wp_enqueue_scripts', 'my_custom_theme_scripts' );

get_stylesheet_uri()Mendapatkanstyle.cssURL tersebut…get_template_directory_uri()Dapatkan URL direktori topik.

Membina struktur hierarki templat

WordPress menggunakan hierarki templat untuk menentukan templat fail mana yang akan digunakan untuk halaman tertentu. Mencipta fail templat khusus dapat menjadikan penyampaian kandungan anda lebih terperinci dan fleksibel.

Mencipta templat untuk pelbagai jenis kandungan

Anda perlu membuat templat khusus untuk pelbagai jenis halaman. Contohnya:
* single.phpDigunakan untuk menunjukkan satu artikel sahaja.
* page.phpDigunakan untuk menunjukkan halaman yang berasingan.
* archive.phpDigunakan untuk menunjukkan kategori, tag, penulis, tarikh, dan halaman arkib yang lain.
* search.phpDigunakan untuk menunjukkan hasil carian.
* 404.phpDigunakan untuk menunjukkan halaman “Tidak Ditemui”.

Asassingle.phpMungkin seperti berikut:

<p>

<main>
    <?php while ( have_posts() ) : the_post(); ?>
        <article id="post-<?php the_ID(); ?>" no numeric noise key 1012>
            <header>
                <h1><?php the_title(); ?></h1>
                <div>
                    |
                </div>
            </header>
            <?php if ( has_post_thumbnail() ) : ?>
                <div>
                    <?php the_post_thumbnail(); ?>
                </div>
            <?php endif; ?>
            <div>
                <?php the_content(); ?>
            </div>
            <footer>
                &lt;?php the_tags( &#039;标签: &#039;, &#039;, &#039;, &#039;<br />' ); ?&gt;
            </footer>
        </article>
    <?php endwhile; ?>
</main>

\n

Template ini menggunakan…the_post_thumbnail()Untuk menunjukkan imej-imej istimewa, serta…comments_template()Mari muatkan kawasan ulasan.

Menggunakan komponen templat untuk mencapai modulariti

Untuk meningkatkan lagi kebolehgunaan kod (code reusability), bahagian-bahagian yang berulang dalam halaman, seperti meta maklumat artikel, item senarai artikel, dan sebagainya, boleh diekstrak menjadi komponen templat (Template Parts). Sebagai contoh, buatlah satu komponen templat yang digunakan untuk menampilkan maklumat artikel secara seragam di semua halaman.template-parts/content.phpFail, kemudian…index.phparchive.phpDi dalam lingkaran, gunakanget_template_part( 'template-parts/content' );Gunakan fungsi tersebut untuk memanggilnya. Dengan cara ini, fail templat utama anda akan kekal ringkas.

RINGKASAN

Dengan langkah-langkah di atas, anda telah menyelesaikan pembangunan sebuah tema WordPress yang bersifat asas tetapi lengkap dengan fungsi-fungsi yang diperlukan. Proses ini meliputi pembinaan persekitaran, penciptaan fail-fail asas, penggunaan fungsi-fungsi yang disediakan oleh WordPress, serta pembinaan lapisan templat (templates). Ingatlah bahawa pembangunan tema adalah proses yang berulang (iteratif); anda boleh bermula dengan fungsi yang paling asas dan kemudian menambahkan ciri-ciri yang lebih kompleks, seperti jenis artikel yang boleh disesuaikan, pilihan penyesuaian tema, reka bentuk yang responsif, dan sebagainya. Yang paling penting adalah untuk mengikuti standard pengkodan dan amalan terbaik WordPress, kerana ini akan memastikan tema anda selamat, berkesan, dan mudah diselenggara. Sekarang, salin folder tema anda ke dalam direktori pemasangan WordPress.wp-content/themes/Dalam hal ini, anda boleh melihat dan mengaktifkannya di bahagian “Penampilan” -> “Tema” di latar belakang (background).

FAQ - Soalan Lazim

Apakah asas bahasa pengaturcaraan yang diperlukan untuk membangunkan tema WordPress?

Untuk mengembangkan tema WordPress, anda perlu menguasai HTML, CSS, dan PHP. HTML digunakan untuk membina struktur halaman, CSS untuk reka bentuk gaya, manakala PHP merupakan bahasa pengaturcaraan pihak server WordPress yang digunakan untuk mengendalikan logik, pertanyaan pangkalan data, dan penghasilan kandungan dinamik. Selain itu, pengetahuan asas JavaScript juga sangat berguna untuk menambahkan ciri-ciri interaktif ke dalam tema tersebut.

Mengapa fungsi get_header() dan get_footer() perlu digunakan?

get_header()get_footer()Ini adalah tag templat WordPress yang digunakan untuk memasukkan kandungan tertentu ke dalam halaman web.header.phpfooter.phpFail. Gunakan fungsi-fungsi ini berbanding menggunakan kaedah langsung.includeAyat tersebut menunjukkan bahawa “statements” merupakan inti kepada mekanisme hierarki templat dan subtema dalam WordPress. Ia membenarkan subtema untuk menggantikan kandungan bahagian atas (header) dan bawah (footer) templat induk dengan membuat fail yang mempunyai nama yang sama, sekali gus memberikan fleksibiliti yang tinggi dalam pengaturan penampilan laman web.

Bagaimana untuk menjadikan tema saya menyokong berbilang bahasa (internasionalisasi)?

Anda perlu menggunakan fungsi internasionalisasi (i18n) WordPress untuk membungkus semua rentetan teks yang dipaparkan dalam tema. Ini dilakukan terutamanya dengan menggunakan…__()_e()Fungsi-fungsi seperti ini, dan juga…style.cssSet the correct value in the middle.Text DomainKemudian, gunakan alat seperti Poedit untuk menghasilkannya..potFail templat terjemahan ini boleh digunakan oleh penterjemah untuk membuat fail terjemahan dalam bahasa yang diinginkan.zh_CN.po.moAkhirnya,functions.phpMelaluiload_theme_textdomain()Function loading.

Setelah pembangunan tema selesai, bagaimanakah untuk menguji keserasiannya?

Sebelum mengeluarkan atau memasang tema ke persekitaran produksi, adalah sangat penting untuk melakukan ujian yang menyeluruh. Pertama sekali, ujian responsif perlu dilakukan pada pelbagai pelayar (Chrome, Firefox, Safari, Edge) dan peranti (desktop, tablet, telefon). Kedua, ujian juga perlu dilakukan menggunakan pelbagai konfigurasi WordPress, seperti mengaktifkan/menonaktifkan pelbagai plugin, serta menggunakan jenis artikel dan widget yang berbeza. Selain itu, anda boleh menggunakan plugin rasmi WordPress iaitu Theme Check untuk memeriksa tema anda, untuk memastikan ia mematuhi standard pengkodan WordPress yang terkini dan amalan terbaik.