Skip to content

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:

SituasiPemanggilan
Single post/page (data dari database)pageBanner();
Archive/listing (hardcode)pageBanner(array('title' => 'All Events', 'subtitle' => '...'));
Archive generikpageBanner(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?

KriteriaFungsi Kustomget_template_part()
Butuh parameter/variasi?YaTidak
ContohBanner (title/subtitle beda-beda)Card event (selalu sama)
Lokasi kodefunctions.phptemplate-parts/ folder

4. Tips Penting

  • $args = NULL membuat parameter opsional — fungsi bisa dipanggil tanpa argumen
  • isset() — 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.