Anda menempel satu baris kode di functions.php dari tutorial, menyimpan, lalu halaman putih. Saat itulah panik muncul: situs tidak bisa dibuka, bahkan admin pun tidak. Kejadian ini biasa dialami pemula, dan sebagian besar bisa dipulihkan tanpa kehilangan data.
Kunci aman cara menulis kode di functions.php adalah tahu file mana yang boleh disentuh, paham urutan pemuatan, dan selalu punya jalan pulang sebelum menyimpan.
Pakai child theme, bukan functions.php tema induk
Kesalahan pertama pemula: menempel kode di wp-content/themes/nama-tema/functions.php. Setiap kali tema diperbarui, file itu ditimpa dan kode Anda hilang. Pakai child theme supaya semua modifikasi tersimpan terpisah dari tema induk.
Child theme minimal butuh satu folder dan satu file style.css dengan header template. Setelah aktif, buat functions.php di dalam folder child theme. Semua kode tambahan masuk ke sana. Prosedur lengkapnya ada di panduan membuat child theme WordPress.
Kalau situs Anda memakai block editor dan tema blok penuh, functions.php tetap tersedia, tapi sebagian besar gaya tampilan kini lebih rapi diatur lewat theme.json. Untuk logika PHP seperti custom post type, hook, atau shortcode, functions.php masih jadi tempat standar.
Pahami urutan pemuatan sebelum menempel kode
functions.php dimuat setiap kali WordPress menangani request, baik halaman publik maupun admin. Artinya, satu syntax error di file ini bisa mematikan seluruh situs, bukan cuma satu halaman.
Kode di functions.php juga dieksekusi sebelum banyak hal lain siap, seperti query utama dan beberapa API plugin. Karena itu, fungsi yang mendaftarkan sesuatu, misalnya menu atau post type, harus dipanggil lewat hook seperti after_setup_theme atau init. Jangan langsung memanggil fungsi yang belum tersedia saat file sedang dibaca.
Pemahaman ini penting ketika Anda mengerjakan beberapa potongan kode sekaligus. Bila Anda mengatur struktur URL dan query, urutan hook yang salah sering membuat halaman 404 meski kode Anda terlihat benar. Untuk urusan itu, aturan di cara mengatur permalink WordPress perlu diperhatikan sebelum menambah aturan rewrite sendiri.
Alur kerja aman sebelum menyimpan perubahan
Ada empat kebiasaan yang mengurangi risiko situs mati drastis. Tidak ada yang rumit, tapi semuanya harus dilakukan sebelum menekan tombol simpan.
- Aktifkan WP_DEBUG. Set
define('WP_DEBUG', true);dandefine('WP_DEBUG_LOG', true);di wp-config.php saat mengembangkan. Error muncul diwp-content/debug.log, bukan di layar kosong. - Simpan salinan functions.php lama. Unduh lewat File Manager hosting atau FTP, beri nama
functions.php.bak, lalu taruh di luar folder tema. - Edit lewat editor yang punya syntax highlighting. VS Code atau PhpStorm akan menandai kurung kurawal yang belum ditutup sebelum file disimpan. Memilih editor yang nyaman dibahas di perbandingan editor kode untuk WordPress.
- Uji di staging bila tersedia. Banyak hosting menyediakan satu klik untuk membuat salinan situs. Kalau tidak ada, minimal uji perubahan saat trafik sedang rendah.
Kalau Anda menyimpan pengaturan aplikasi lewat kode, pola penyimpanan yang rapi di aplikasi mobile bisa jadi inspirasi. Lihat cara menyimpan data pengaturan di aplikasi iOS dan macOS untuk melihat bagaimana nilai disimpan dan dipanggil kembali tanpa mencampur logika utama.
Kesalahan sintaks yang paling sering bikin blank
Ada beberapa pola yang berulang di layar bantuan forum. Perhatikan contoh berikut:
add_action( 'init', function() {
register_post_type( 'buku', [
'label' => 'Buku',
'public' => true,
] );
} );
Kode di atas benar. Bandingkan dengan versi yang sering salah tulis:
add_action( 'init', function() {
register_post_type( 'buku', [
'label' => 'Buku',
'public' => true,
]
} ); // kurung tutup kurang
PHP akan menolak file dengan pesan parse error, dan WordPress berhenti memuat tema. Jenis kesalahan lain: lupa titik koma setelah <?php di awal file, tanda kutip melengkung hasil salin dari blog, dan pemanggilan fungsi yang belum didefinisikan. Pada kasus terakhir, situs bisa tampil tapi area tertentu kosong.
Kalau Anda sering menempel kode dari berbagai sumber, biasakan mengetik ulang tanda kutip dan tanda kurung, bukan menyalin mentah. Editor yang menampilkan pasangan kurung otomatis akan menangkap sebagian besar kesalahan ini.
Pulihkan situs setelah functions.php rusak
Kalau layar putih sudah muncul dan admin tidak bisa diakses, jangan langsung menyerah. Langkah pertama: buka File Manager hosting atau sambungkan lewat FTP, masuk ke folder child theme, lalu rename functions.php menjadi functions.php.rusak. WordPress akan menganggap file itu tidak ada dan situs kembali hidup dengan fungsi bawaan tema.
Setelah situs normal, buka file rusak di editor lokal, perbaiki error, dan unggah lagi. Cara ini lebih cepat daripada memindahkan seluruh tema. Jika Anda tidak punya akses FTP sama sekali, hubungi penyedia hosting untuk membuka File Manager.
Pengalaman serupa berlaku saat menyiapkan environment pengembangan. Kesalahan konfigurasi di tahap awal bisa menghentikan seluruh proses, jadi ikuti panduan menyiapkan environment Java untuk proyek baru sebagai contoh bagaimana langkah verifikasi disusun rapi sebelum menulis logika.
Rapikan kode sebelum menambah fitur berikutnya
Setelah beberapa minggu, functions.php yang dibiarkan akan menumpuk: shortcode, filter, fungsi kecil untuk ikon menu, dan potongan dari tutorial berbeda. Saat mau menambah fitur, Anda bingung mana yang masih dipakai. Mulai biasakan tidak mencampur semuanya di satu file.
Buat folder inc/ di dalam child theme dan pecah kode per topik, misalnya inc/shortcode.php, inc/custom-post-type.php, atau inc/assets.php. Panggil masing-masing lewat require_once di functions.php. Pembagian ini memudahkan pencarian dan membuat kode lebih mudah dilepas kalau sudah tidak dipakai.
Untuk fitur yang berkaitan dengan data, misalnya menampilkan field tambahan pada post type, pisahkan logika penyimpanan dan logika tampilan. Referensi praktis ada di cara membuat custom meta box di WordPress tanpa plugin, sementara contoh menampilkan hasilnya bisa dilihat di cara menampilkan data custom post type di WordPress.
Ringkasnya: selalu tulis kode di functions.php milik child theme, pahami bahwa file ini dimuat di setiap request, aktifkan debug, dan simpan salinan sebelum mengubah apa pun. Dengan begitu, satu error tidak akan membuat Anda kehilangan akses ke situs dan Anda bisa bereksperimen tanpa takut.
Pertanyaan yang Sering Diajukan
Bolehkah menempel kode di functions.php tema induk kalau temanya tidak pernah diperbarui?
Boleh secara teknis, tapi tidak disarankan. Banyak tema tetap merilis pembaruan keamanan, dan kode Anda akan hilang saat pembaruan terpasang. Child theme memisahkan keduanya dengan rapi.
Bagaimana kalau hosting tidak menyediakan FTP atau File Manager?
Hubungi penyedia hosting dan minta akses yang sesuai paket Anda. Tanpa akses file, siapa pun tidak bisa memulihkan functions.php yang rusak. Pastikan akses ini tersedia sebelum mulai mengubah kode.
Apakah semua modifikasi WordPress harus lewat functions.php?
Tidak. Perubahan gaya tampilan lebih tepat dilakukan lewat CSS atau theme.json, sedangkan logika data dan hook PHP memang tempatnya di functions.php atau file yang dipanggil dari sana.


