Custom Fields
Apa Itu Custom Fields?
Custom fields memungkinkan kita menambahkan data tambahan ke sebuah post di luar title, content, dan excerpt. Contoh: tanggal event, lokasi, harga, dsb.
WordPress punya fitur custom fields bawaan, tapi user experience-nya sangat buruk — user harus mengetik nama field secara manual. Solusi: gunakan plugin Advanced Custom Fields (ACF).
Langkah 1: Install Plugin Advanced Custom Fields
- Buka WordPress Admin → Plugins → Add New
- Cari: Advanced Custom Fields
- Pastikan plugin oleh Elliot dengan 1 juta+ instalasi aktif
- Klik Install Now → Activate
💡 Ada 2 plugin industri standar untuk custom fields: ACF dan CMB2. Course ini menggunakan ACF karena lebih mudah dipakai.
Langkah 2: Membuat Field Group
- Di sidebar admin, klik Custom Fields (menu baru dari ACF)
- Klik Add New
- Nama field group: Event Date
- Klik Add Field:
| Setting | Nilai |
|---|---|
| Field Label | Event Date |
| Field Name | event_date (otomatis generate) |
| Field Type | Date Picker |
| Required | Yes |
| Display Format | Default |
| Return Format | Ymd (Penting! untuk kompatibel dengan PHP) |
- Scroll ke bawah ke bagian Location:
- Show this field group if: Post Type is equal to Event
- Klik Publish
⚠️ Return Format harus
Ymd(contoh:20170720). Format ini kompatibel dengan PHPDateTimeclass dan memudahkan sorting/comparison.
Langkah 3: Mengisi Event Date
- Edit event post (misalnya Poetry Day)
- Di bawah konten, muncul field Event Date dengan date picker
- Pilih tanggal → klik Update/Save
Isi tanggal untuk semua event:
- Poetry Day → 20 Juli
- Science of Cats → 30 Juni
- Math Meetup → 29 Juni
Langkah 4: Menampilkan Custom Field di Frontend
Fungsi dari ACF
| Fungsi | Penjelasan |
|---|---|
the_field('field_name') | Echo nilai field langsung ke halaman |
get_field('field_name') | Return nilai field (tanpa echo) — gunakan saat perlu proses dulu |
Menampilkan Tanggal Event di front-page.php
Custom field event_date menyimpan tanggal dalam format Ymd (contoh: 20170720). Kita perlu konversi ke format yang readable menggunakan PHP DateTime class.
<?php
$eventDate = new DateTime(get_field('event_date'));
?>
<span class="event-summary__month">
<?php echo $eventDate->format('M'); ?>
</span>
<span class="event-summary__day">
<?php echo $eventDate->format('d'); ?>
</span>Penjelasan Kode
| Baris | Penjelasan |
|---|---|
get_field('event_date') | Ambil nilai custom field (return string "20170720") |
new DateTime(...) | Buat objek DateTime dari string tanggal |
$eventDate->format('M') | Format ke 3-huruf bulan (Jul, Jun, Sep) |
eventDate->format('d') | Format ke 2-digit hari (20, 30, 29) |
Format DateTime yang Sering Dipakai
| Kode | Output | Keterangan |
|---|---|---|
'Y' | 2017 | Tahun 4 digit |
'm' | 07 | Bulan 2 digit |
'd' | 20 | Hari 2 digit |
'M' | Jul | Bulan singkatan 3 huruf |
'F' | July | Bulan nama lengkap |
'D' | Thu | Hari singkatan 3 huruf |
Catatan Tentang the_field vs get_field
// ❌ Jangan pakai the_field() di dalam function/expression
$eventDate = new DateTime(the_field('event_date')); // SALAH - the_field() langsung echo
// ✅ Pakai get_field() untuk mendapat return value
$eventDate = new DateTime(get_field('event_date')); // BENAR - get_field() return string💡 Pola yang sama dengan fungsi WordPress bawaan:
the_title()echo langsung,get_the_title()return value.
Catatan: WordPress Post Edit Screen
Mulai Juli 2021, semua video di course ini sudah terupdate untuk menunjukkan Block Editor modern. Jika tampilan edit screen kamu berbeda dari video, tidak perlu khawatir — semua solusi di course ini bekerja dengan baik di WordPress versi terbaru.