Ikhtisar Chapter 8: Professor Post Type
Apa yang Dipelajari?
Cara membuat CPT Professor dengan featured image, menampilkan relasi professor ↔ program, dan membuat page banner dinamis dengan custom fields ACF.
Poin Utama
1. CPT Professor
Didaftarkan di mu-plugins seperti CPT lain, tapi dengan perbedaan:
| Fitur | Professor | Event/Program |
|---|---|---|
| Archive | Tidak ada | Ada |
| Supports | title, editor, thumbnail | title, editor, excerpt |
thumbnail di array supports mengaktifkan featured image untuk post type ini.
2. Featured Image (Post Thumbnail)
Perlu 2 langkah untuk mengaktifkan:
- Di
functions.php:add_theme_support('post-thumbnails') - Di register CPT: tambahkan
'thumbnail'disupports
Custom image sizes — ukuran gambar khusus yang otomatis dibuat saat upload:
add_image_size('professorLandscape', 400, 260, true); // card
add_image_size('professorPortrait', 480, 650, true); // detail
add_image_size('pageBanner', 1500, 350, true); // banner| Fungsi | Output |
|---|---|
the_post_thumbnail('size') | Tag <img> |
the_post_thumbnail_url('size') | Hanya URL gambar |
Gambar yang diupload sebelum
add_image_sizeperlu di-regenerate pakai plugin Regenerate Thumbnails.
3. Relasi Professor ↔ Program
ACF field Related Program(s) dipasang juga di Professor (tambahkan rule "OR Post Type = Professor").
| Arah | Cara |
|---|---|
| Professor → Program | get_field('related_programs') + foreach |
| Program → Professor | WP_Query + meta_query LIKE |
Di halaman program, professor ditampilkan sebagai cards dengan foto dan nama.
4. wp_reset_postdata() — Kritis!
Kalau ada 2+ custom query di satu halaman (misal: professors + events di single-program.php), WAJIB panggil wp_reset_postdata() setelah setiap query selesai. Tanpa ini, get_the_ID() dan fungsi global lain bisa return data dari query sebelumnya.
5. Page Banner Dinamis
Dengan ACF, setiap halaman bisa punya:
- Subtitle (text field)
- Background image (image field)
Image field return berupa array — akses ukuran tertentu dengan:
$img = get_field('page_banner_background_image');
echo $img['sizes']['pageBanner'];Masalah: kode banner sama di semua template → duplikasi. Solusi di Chapter 9.
Satu Kalimat
Chapter ini menambahkan Professor sebagai Custom Post Type dengan featured image dan page banner dinamis, serta menunjukkan cara menampilkan relasi antar konten dari kedua sisi.