Panduan Dasar Pengembangan Tema WordPress: Membangun Tema Pertama Anda Dari Nol

3 menit baca
2026-03-14
2026-06-04
2,405
Saya mendapatkan komisi ketika Anda berbelanja melalui tautan di bawah ini, tanpa biaya tambahan untuk Anda.

Memasuki dunia WordPress dan mengembangkan tema sendiri merupakan tonggak yang sangat menggembirakan. Hal ini tidak hanya memungkinkan Anda sepenuhnya mengontrol tampilan dan fungsi situs web Anda, tetapi juga merupakan cara terbaik untuk memahami lebih dalam cara kerja inti WordPress. Panduan ini akan membimbing Anda dari awal untuk membuat tema yang sederhana namun lengkap, mencakup setiap langkah penting mulai dari struktur file hingga template inti.

Pembangunan Lingkungan Pengembangan dan Struktur Tema (Development Environment and Theme Structure Setup)

Sebelum memulai menulis kode, diperlukan lingkungan pengembangan yang sesuai. Disarankan untuk menggunakan perangkat lunak server lokal seperti XAMPP, WAMP, atau MAMP, yang dapat dengan cepat membangun lingkungan di komputer lokal yang mencakup Apache, MySQL, dan PHP. Selain itu, editor kode yang handal, seperti Visual Studio Code, Sublime Text, atau PHPStorm, juga sangat penting.

Sebuah tema WordPress paling dasar membutuhkan setidaknya dua file:style.cssindex.phpstyle.cssBukan hanya sebuah file gaya (style sheet), tetapi juga merupakan “kartu identitas” dari sebuah tema. WordPress mengenali tema Anda dengan membaca informasi komentar yang terdapat di bagian awal file tersebut. Pertama-tama, periksa direktori instalasi WordPress lokal Anda…wp-content/themesDalam folder tersebut, buatlah sebuah folder baru, misalnya…my-first-themeKemudian, buatlah folder baru di dalam folder tersebut.style.cssDokumen.

推荐阅读 Menguasai Pengembangan Tema WordPress: Panduan Lengkap dan Trik Praktis Dari Nol Sampai Satu

主题信息的定义

style.cssDi bagian atas file, Anda perlu menambahkan sebuah blok komentar khusus untuk mendefinisikan metainformasi tentang topik tersebut.

UltaHost – Hosting untuk WordPress
Jaminan pengembalian uang dalam 30 hari, bandwidth dan basis data yang tidak terbatas, perlindungan DDoS gratis, diskon 50% untuk pembelian selama 3 tahun (dari harga normal: 50%).
/*
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
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-first-theme
*/

Di antaranya,Theme NameText DomainIni merupakan kolom wajib. Bidang teks digunakan untuk terjemahan internasional, dan biasanya sesuai dengan nama folder tema.

Pembuatan file template inti

index.phpIni adalah template default untuk tema tersebut, sekaligus template cadangan (fallback) yang paling penting. Ketika WordPress tidak dapat menemukan file template yang lebih spesifik…single.php, page.phpKetika diperlukan, fungsi tersebut akan digunakan. Anda dapat meletakkan struktur HTML dasar serta beberapa fungsi WordPress di dalamnya untuk mengambil dan menampilkan konten.

File template inti dan perulangan (Core template file and loops)

Sistem tema WordPress didasarkan pada penggunaan template (templat), dan jenis halaman yang berbeda dikendalikan oleh file template yang berbeda pula. Memahami dan membuat file template inti ini merupakan kunci dalam pengembangan tema.

Konsep yang paling mendasar adalah “WordPress Loop”. Ini merupakan struktur kode PHP yang digunakan untuk mengambil artikel (Posts) dari basis data dan menampilkan setiap artikel tersebut satu per satu. Hampir semua file template yang digunakan untuk menampilkan konten tidak dapat berfungsi tanpa adanya WordPress Loop.

推荐阅读 Cara Membuat Tema WordPress yang Profesional: Panduan Lengkap dari Nol Hingga Siap Digunakan

Pembuatan template halaman utama

index.phpFile tersebut harus berisi kerangka HTML yang lengkap beserta struktur perulangan (loop). Berikut adalah contoh sederhananya:

<!DOCTYPE html>
<html no numeric noise key 1021>
<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 1018>
    <?php wp_body_open(); ?>
    <header>
        <h1><a href="/id/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
        <p><?php bloginfo( 'description' ); ?></p>
    </header>
    <main>
        
                <article id="post-<?php the_ID(); ?>" no numeric noise key 1010>
                    <h2><a href="/id/</?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                    <div class="entry-content">
                        <?php the_excerpt(); ?>
                    </div>
                </article>
            
            <p><?php esc_html_e( 'Sorry, no posts matched your criteria.', 'my-first-theme' ); ?></p>
        <?php endif; ?>
    </main>
    <footer>
        <p>©</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

File ini mendefinisikan struktur dasar halaman web, dan menggunakan perulangan untuk menampilkan daftar artikel di dalam area utama. Fungsi-fungsi terkait…the_title()the_excerpt()Digunakan untuk menampilkan isi artikel.wp_head()wp_footer()Ini merupakan hook yang sangat penting, digunakan untuk memungkinkan WordPress core, plugin, dan skrip lainnya untuk menambahkan kode yang diperlukan.

Artikel dan template halaman.

single.phpDigunakan untuk menampilkan satu artikel saja.page.phpDigunakan untuk menampilkan halaman individu. Strukturnya mirip, tetapi biasanya…single.phpAkan mencakup elemen-elemen seperti kategori dan tag.page.phpJadi, lebih ringkas. Anda bisa memulainya dengan mengambil salinan (mengkopi)…index.phpMulailah membuatnya, lalu gantilah isi di dalam siklus tersebut dengan…the_content()Untuk menampilkan seluruh teks.

hosting.com hosting bersama
Kinerja tinggi, dilengkapi dengan CPU AMD EPYC, penyimpanan SSD NVMe, dan LiteSpeed, dukungan internal ahli 24 jam sehari, langkah-langkah keamanan canggih termasuk SSL, brute force, malware, dan perlindungan DDoS, menghemat hingga 731 TB/bulan.

Mengintegrasikan gaya (styles) dan skrip (scripts)

Tema-tema modern memerlukan tata letak (style) dan fitur interaksi yang baik. WordPress menyediakan fungsi-fungsi standar untuk mengintegrasikan file CSS dan JavaScript dengan aman, bukan dengan langsung menggunakan kode tersebut dalam file HTML.<link><script>Tag.

Pembuatan dan Penggunaan File Fungsi

Anda perlu membuat sesuatu yang bernama…functions.phpFile ini bukanlah file template, melainkan file “peningkatan fungsionalitas” (feature enhancement) untuk tema tertentu, yang digunakan untuk menambahkan fitur baru, mengaktifkan fitur tertentu, atau mengubah perilaku default WordPress. Di sini, kita mendaftarkan file gaya (style sheet) dan skrip (script) yang digunakan dalam tema tersebut.

Menyisipkan sumber daya dengan aman

functions.phpDi dalamnya, digunakan…wp_enqueue_style()wp_enqueue_script()Fungsi. Cara yang umum adalah dengan membuat sebuah fungsi, lalu menggunakan fungsi tersebut untuk melakukan tugas tertentu.wp_enqueue_scriptsAction hook ini digunakan untuk memanggil fungsi tertentu.

推荐阅读 Panduan Lengkap: Cara Mengembangkan Tema WordPress Profesional Dari Nol

<?php
function my_first_theme_scripts() {
    // 引入主题的主样式表
    wp_enqueue_style( 'main-style', get_stylesheet_uri() );

// 引入自定义CSS文件
    wp_enqueue_style( 'custom-style', get_template_directory_uri() . '/assets/css/custom.css', array(), '1.0' );

// 引入JavaScript文件
    wp_enqueue_script( 'main-js', get_template_directory_uri() . '/assets/js/main.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );

Kode ini memastikan bahwa file CSS dan JS diunduh (diload) pada waktu yang tepat.get_stylesheet_uri()Fungsi tersebut akan mengembalikan topik (subject) dari konten yang dimaksud.style.cssPath ke file.get_template_directory_uri()Maka akan dikembalikan URL direktori topik tersebut.

Komponen template dan fitur tema

Ketika topik menjadi semakin kompleks, memodulisasi potongan kode yang berulang merupakan praktik yang baik. WordPress menyediakan fitur “Template Parts” (Komponen Tema) dan “Navigation Menus” (Menu Navigasi).

Hosting bersama InterServer.
Hosting bersama seharga $2,50 USD per bulan, diskon $0,1 USD untuk bulan pertama dengan kode promo tryinterserver, serta 461 skrip aplikasi cloud yang dapat diinstal dengan sekali klik.

Membuat komponen template yang dapat digunakan kembali (reusable template components)

Misalnya, memisahkan bagian header dan footer dari sebuah situs web menjadi file-file yang terpisah. Anda dapat membuatnya dengan…header.phpfooter.phpFile, akan…index.phpPotong kode yang sesuai dengan bagian “中” dan tempelkannya ke tempat yang ditentukan. Kemudian, gunakan fungsi-fungsi berikut di posisi asalnya untuk memanggil kode tersebut:

<?php get_header(); ?>
<?php get_footer(); ?>

Anda juga dapat membuat komponen yang lebih umum (lebih serbaguna), seperti…content.phppost-item.phpDigunakan di dalam siklus.get_template_part()Fungsi tersebut digunakan untuk melakukan proses pengambilan (loading) data, yang secara signifikan meningkatkan tingkat penggunaan kembali kode (reusability) dalam program.

Aktifkan menu navigasi yang dapat disesuaikan.

Sistem menu di WordPress sangatlah kuat. Pertama-tama, Anda perlu…functions.phpGunakan dalam bahasa Cinaregister_nav_menus()Fungsi untuk mendaftarkan lokasi menu.

function my_first_theme_setup() {
    register_nav_menus( array(
        'primary' => __( 'Primary Menu', 'my-first-theme' ),
        'footer'  => __( 'Footer Menu', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

Kemudian, dalam berkas template (seperti…)header.phpDi bagian tersebut, gunakan kode berikut untuk menentukan posisi di mana Anda ingin menampilkan menu:wp_nav_menu()Fungsi tersebut digunakan untuk mengeluarkan (menghasilkan) hasilnya.

<?php
wp_nav_menu( array(
    'theme_location' => 'primary',
    'menu_class'     => 'primary-menu',
) );
?>

Sekarang, pengguna dapat membuat menu di bagian “Tampilan” (Appearance) -> “Menu” (Menus) di panel administrasi WordPress, lalu menetapkannya ke posisi “Menu Utama” (Primary Menu).

Menyimpulkan.

Dengan panduan ini, Anda telah menyelesaikan seluruh proses dari membuat sebuah folder kosong hingga menghasilkan sebuah tema WordPress yang memiliki fungsi dasar. Anda juga telah mempelajari cara membuat file-file yang diperlukan.style.cssindex.phpSaya telah memahami fungsi utama dari siklus (loop) dalam WordPress, dan telah berhasil membuatnya (membangunnya).single.phppage.phpAnda juga telah memahami cara untuk…functions.phpMenambahkan gaya (style) dan skrip dengan aman, serta cara menggunakan komponen template dan sistem menu navigasi untuk mengorganisir kode dan memperkuat fitur tema. Ini hanyalah awal; selanjutnya Anda dapat mengeksplorasi fitur lebih lanjut seperti sidebar, area widget, jenis artikel kustom, API untuk penyesuaian tema, dan lainnya, untuk terus memperkaya dan menyempurnakan tema Anda.

FAQ - Pertanyaan yang Sering Diajukan.

Apakah pengembangan tema harus dimulai dari nol?

Tidak selalu demikian. Bagi pemula, memulai dari nol merupakan cara terbaik untuk belajar. Namun, dalam proyek nyata, Anda bisa memilih untuk menggunakan tema kosong resmi (seperti Underscores), framework (seperti Genesis), atau tema pendekatan (seperti _s) sebagai titik awal. Tema-tema tersebut sudah memiliki struktur kode dasar yang kokoh, sehingga Anda dapat lebih fokus pada pengembangan desain dan logika bisnis.

Apakah file index.php wajib ada?

Ya,index.phpIni adalah file template yang wajib ada dalam tema WordPress. File ini merupakan lapisan pertahanan terakhir dalam hierarki template; jika file template yang lebih spesifik lainnya (seperti…)archive.php, search.phpJika hal tersebut tidak ada, WordPress akan menggunakan metode yang tersedia secara default.index.phpHal ini dilakukan untuk menampilkan halaman web dan memastikan bahwa situs web selalu memiliki konten yang dihasilkan (dipublikasikan) kepada pengguna.

Bagaimana cara mendeteksi dan memperbaiki masalah yang terjadi selama pengembangan tema saya?

Pertama-tama, pastikan bahwa di dalam sistem Anda…wp-config.phpMode WP_DEBUG telah diaktifkan dalam file tersebut.define( ‘WP_DEBUG’, true );Baris ini diatur menjadi “true”. Hal ini akan membuat pesan kesalahan PHP dan peringatan WordPress ditampilkan langsung di halaman web, sehingga memudahkan Anda untuk menemukan dan memperbaiki masalah. Selain itu, sangat penting juga untuk menggunakan alat pengembang browser (buka dengan menekan tombol F12) untuk memeriksa kesalahan pada kode CSS dan JavaScript.

Apakah saya bisa melakukan apa saja di file functions.php dari tema tersebut?

Secara teori, hal tersebut memungkinkan, tetapi praktik terbaik adalah hanya menambahkan kode yang langsung terkait dengan tampilan dan fungsi dari tema tersebut. Fungsi-fungsi kompleks yang berkaitan dengan logika bisnis inti atau operasi data sebaiknya dikembangkan menjadi plugin yang terpisah. Keuntungan dari pendekatan ini adalah ketika pengguna mengganti tema, fungsi-fungsi tersebut tidak akan hilang, sehingga meningkatkan keterawatan dan kemudahan penggunaan kembali kode.