Skip to content

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:

FiturProfessorEvent/Program
ArchiveTidak adaAda
Supportstitle, editor, thumbnailtitle, editor, excerpt

thumbnail di array supports mengaktifkan featured image untuk post type ini.


2. Featured Image (Post Thumbnail) ​

Perlu 2 langkah untuk mengaktifkan:

  1. Di functions.php: add_theme_support('post-thumbnails')
  2. Di register CPT: tambahkan 'thumbnail' di supports

Custom image sizes — ukuran gambar khusus yang otomatis dibuat saat upload:

php
add_image_size('professorLandscape', 400, 260, true);  // card
add_image_size('professorPortrait', 480, 650, true);    // detail
add_image_size('pageBanner', 1500, 350, true);          // banner
FungsiOutput
the_post_thumbnail('size')Tag <img>
the_post_thumbnail_url('size')Hanya URL gambar

Gambar yang diupload sebelum add_image_size perlu 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").

ArahCara
Professor → Programget_field('related_programs') + foreach
Program → ProfessorWP_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:

php
$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.