Ikhtisar Chapter 9: Cleaner Code (Mengurangi Duplikasi)
Apa yang Dipelajari?
Dua teknik utama untuk menghilangkan duplikasi kode di template WordPress: fungsi kustom (pageBanner()) dan get_template_part().
Poin Utama
1. Fungsi pageBanner() — Satu Banner untuk Semua
Kode page banner yang tadinya copy-paste di 8-10 file template, sekarang cukup dibikin sekali di functions.php:
php
function pageBanner($args = NULL) {
if (!isset($args['title'])) $args['title'] = get_the_title();
if (!isset($args['subtitle'])) $args['subtitle'] = get_field('page_banner_subtitle');
if (!isset($args['photo'])) {
if (get_field('page_banner_background_image') AND !is_archive() AND !is_home()) {
$args['photo'] = get_field('page_banner_background_image')['sizes']['pageBanner'];
} else {
$args['photo'] = get_theme_file_uri('/images/ocean.jpg');
}
}
// ... output HTML banner ...
}Cara pakai:
| Situasi | Pemanggilan |
|---|---|
| Single post/page (data dari database) | pageBanner(); |
| Archive/listing (hardcode) | pageBanner(array('title' => 'All Events', 'subtitle' => '...')); |
| Archive generik | pageBanner(array('title' => get_the_archive_title())); |
Kalau mau ubah HTML banner → cukup edit 1 tempat.
2. get_template_part() — Potongan HTML Reusable
Untuk HTML yang sama persis di beberapa tempat (misalnya card/list item event), pindahkan ke file tersendiri:
File: template-parts/content-event.php — berisi HTML satu event item.
Pemanggilan:
php
get_template_part('template-parts/content-event');
// atau dinamis:
get_template_part('template-parts/content', get_post_type());3. Kapan Pakai Yang Mana?
| Kriteria | Fungsi Kustom | get_template_part() |
|---|---|---|
| Butuh parameter/variasi? | Ya | Tidak |
| Contoh | Banner (title/subtitle beda-beda) | Card event (selalu sama) |
| Lokasi kode | functions.php | template-parts/ folder |
4. Tips Penting
$args = NULLmembuat parameter opsional — fungsi bisa dipanggil tanpa argumenisset()— cek apakah key ada di array sebelum mengakses, menghindari PHP warning!is_archive() AND !is_home()— mencegah banner archive salah ambil gambar dari post pertama- Jangan berlebihan menghilangkan duplikasi — cari keseimbangan antara DRY dan readability
Satu Kalimat
Chapter ini mengajarkan prinsip DRY (Don't Repeat Yourself) di WordPress — menggunakan fungsi kustom untuk output yang butuh variasi, dan
get_template_part()untuk HTML yang selalu identik.