Lewati ke isi

Website & Domain

Cara Membuat Child Theme agar Ubahan Aman Saat Update

Langkah membuat child theme WordPress untuk tema klasik dan tema blok, isi style.css dan functions.php, serta kesalahan yang bikin situs error.

Terbit 5 menit baca

Jawaban singkat

Child theme adalah tema "anak" yang mewarisi tema induk, jadi ubahan CSS, template, dan fungsi disimpan terpisah dan tidak hilang saat tema induk diperbarui. Minimal butuh satu folder dan file style.css dengan baris Template berisi nama folder tema induk.

Daftar isi
  1. Kapan kamu butuh child theme?
  2. Langkah membuat child theme untuk tema klasik
  3. 1. Buat folder child
  4. 2. Buat file style.css
  5. 3. Buat file functions.php untuk memuat CSS
  6. 4. Aktifkan
  7. 5. Pindahkan ubahan
  8. Bagaimana dengan tema blok?
  9. Kesalahan yang membuat situs error
  10. Pertanyaan yang sering diajukan

Pernah mengubah warna tombol atau menambah kode di file tema, lalu semuanya hilang setelah tema diperbarui? Itu terjadi karena update tema menimpa seluruh berkas lama dengan versi baru dari pembuatnya. Cara aman menghindarinya adalah child theme.

Child theme adalah tema terpisah yang "menumpang" pada tema induk (parent theme). Semua fitur dan tampilan diambil dari induk, sedangkan ubahanmu disimpan di folder child. Saat tema induk diperbarui, folder child tidak disentuh, jadi ubahan tetap utuh.

Kapan kamu butuh child theme?

Child theme diperlukan bila kamu mengubah berkas tema: menambah CSS dalam jumlah banyak, mengganti file template, atau menambah fungsi PHP. Kalau ubahanmu hanya lewat pengaturan Customizer atau Site Editor, ubahan itu tersimpan di database dan tidak ikut tertimpa update, jadi child theme belum tentu perlu.

Jenis ubahanPerlu child theme?
Warna, logo, font lewat Customizer atau Site EditorUmumnya tidak, tersimpan di database
CSS tambahan beberapa barisBisa lewat menu CSS tambahan, child theme opsional
Mengedit file template tema (header, footer, single)Ya
Menambah fungsi PHP khusus tampilanYa
Fitur yang tetap harus ada walau ganti temaTidak, lebih tepat dibuat sebagai plugin kecil

Langkah membuat child theme untuk tema klasik

Contoh di bawah memakai tema induk dengan folder namaInduk. Ganti dengan nama folder tema induk yang sebenarnya, yang bisa kamu lihat di wp-content/themes/.

1. Buat folder child

Lewat File Manager di cPanel atau FTP, buat folder baru di wp-content/themes/, misalnya namaInduk-child. Nama folder bebas, tapi akhiran -child memudahkan dikenali.

2. Buat file style.css

Ini satu-satunya file yang wajib. Isi bagian kepala minimal seperti ini:

/*
Theme Name: Nama Induk Child
Template: namaInduk
Version: 1.0
*/

Baris Template harus sama persis dengan nama folder tema induk, bukan nama tampilannya. Salah satu huruf saja, WordPress akan menganggap tema induk tidak ditemukan.

3. Buat file functions.php untuk memuat CSS

Banyak tema klasik hanya memuat stylesheet tema yang sedang aktif. Agar tampilan induk tetap muncul dan CSS child ikut dimuat, buat functions.php di folder child:

<?php
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_style( 'induk-style', get_parent_theme_file_uri( 'style.css' ) );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'induk-style' ) );
} );

Dokumentasi WordPress mengingatkan bahwa cara tiap tema memuat CSS berbeda-beda. Kalau setelah aktif ternyata CSS induk termuat dua kali, hapus baris pertama dan sisakan baris untuk child saja.

4. Aktifkan

Buka Appearance > Themes di dasbor, lalu aktifkan child theme. Cek halaman depan, artikel, dan halaman toko (bila ada). Pengaturan Customizer kadang perlu disesuaikan ulang karena WordPress menyimpannya per tema.

5. Pindahkan ubahan

Salin CSS buatanmu ke style.css child. Untuk mengubah template, salin file dari induk (misalnya footer.php) ke folder child dengan nama dan posisi folder yang sama, lalu edit salinannya. WordPress akan memakai versi child.

Bagaimana dengan tema blok?

Tema blok (yang memakai Site Editor) bisa juga punya child theme, dengan file wajib yang sama: style.css berisi baris Template. Bedanya, gaya tampilan diatur lewat theme.json. File theme.json di child akan digabung dengan milik induk, sehingga kamu cukup menulis bagian yang ingin diubah, misalnya palet warna. Template HTML di folder templates atau parts milik child akan menggantikan file bernama sama dari induk.

Ingat juga bahwa ubahan yang kamu buat lewat Site Editor tersimpan di database dan menimpa isi theme.json maupun template. Kalau ubahan child tidak terlihat, cek apakah ada kustomisasi lama di Site Editor yang perlu di-reset.

Kalau tidak ingin membuat file manual, plugin Create Block Theme dari tim WordPress menyediakan opsi membuat child theme dari tema blok yang sedang aktif.

Kesalahan yang membuat situs error

  • Menyalin seluruh functions.php induk ke child. Dokumentasi WordPress menjelaskan bahwa functions.php child tidak menggantikan milik induk, keduanya dimuat (child lebih dulu). Menyalin fungsi yang sama akan memicu error karena nama fungsi ganda.
  • Salah isi baris Template. Tema child akan tampil "rusak" atau tidak bisa diaktifkan.
  • Menghapus tema induk. Child theme butuh induknya tetap terpasang.
  • Mengedit langsung di server produksi. Satu titik koma yang hilang di PHP bisa membuat layar putih kosong. Coba dulu di staging WordPress dan siapkan backup.

Satu kebiasaan kecil yang membantu: tulis catatan singkat di bagian atas style.css atau file terpisah tentang apa saja yang sudah kamu ubah dan alasannya. Beberapa bulan kemudian, kamu atau pengelola website berikutnya tidak perlu menebak-nebak kenapa ada file template tertentu di folder child.

Setelah child theme aktif, alur update rutin tetap sama seperti biasa. Panduan lengkapnya ada di cara update WordPress, tema, dan plugin tanpa error.

Pertanyaan yang sering diajukan

Apakah child theme membuat website lebih lambat?

Perbedaannya umumnya sangat kecil, biasanya hanya tambahan satu file CSS. Kecepatan lebih banyak dipengaruhi plugin, gambar, dan hosting.

Apakah saya bisa membuat child theme setelah terlanjur mengedit tema induk?

Bisa. Catat atau salin dulu bagian yang kamu ubah, buat child theme, pindahkan ubahan ke child, lalu baru perbarui tema induk.

Apakah child theme perlu diperbarui juga?

Child theme tidak menerima update dari pembuat tema. Yang perlu kamu pantau adalah file template salinan, apakah masih cocok dengan versi induk terbaru.

Bagaimana kalau tema saya sudah menyediakan child theme siap pakai?

Banyak tema premium menyertakan child theme di paket unduhannya. Pakai saja yang itu, karena biasanya sudah disesuaikan dengan cara tema tersebut memuat CSS.

Checklist sebelum mengaktifkan child theme:

  • Backup berkas dan database sudah ada.
  • Baris Template sama persis dengan nama folder induk.
  • functions.php child hanya berisi fungsi baru, bukan salinan induk.
  • Tampilan sudah dicek di staging atau saat situs sepi.
  • Tema induk tetap terpasang dan rutin diperbarui.

Sumber & referensi

Baca juga