Menggunakan Fungsi pageBanner() di Semua Template
Tujuan
Mengganti semua kode page banner yang terduplikasi di setiap template file dengan pemanggilan fungsi pageBanner().
Template yang Diperbarui
1. archive-event.php — dengan argumen kustom
php
<?php get_header();
pageBanner(array(
'title' => 'All Events',
'subtitle' => 'See what is going on in our world.'
));
?>
<div class="container container--narrow page-section">
<!-- loop events -->
</div>
<?php get_footer(); ?>💡 Archive screen tidak punya post spesifik di database → gunakan argumen kustom untuk title & subtitle.
2. archive-program.php — dengan argumen kustom
php
<?php get_header();
pageBanner(array(
'title' => 'All Programs',
'subtitle' => 'There is something for everyone. Have a look around.'
));
?>3. archive.php — dengan fungsi dinamis
php
<?php get_header();
pageBanner(array(
'title' => get_the_archive_title(),
'subtitle' => get_the_archive_description()
));
?>💡
get_the_archive_title()→ mengembalikan "Category: Awards", "Author: Brad", dll. Gunakan versiget_(return value), bukanthe_(echo langsung).
4. index.php — Blog home, argumen kustom
php
<?php get_header();
pageBanner(array(
'title' => 'Welcome to our blog!',
'subtitle' => 'Keep up with our latest news.'
));
?>5. page-past-events.php — argumen kustom
php
<?php get_header();
pageBanner(array(
'title' => 'Past Events',
'subtitle' => 'A recap of our past events.'
));
?>6. page.php — tanpa argumen (semua fallback)
php
<?php get_header();
while (have_posts()) {
the_post();
pageBanner();
?>
<div class="container container--narrow page-section">
<!-- content -->
</div>
<?php }
get_footer(); ?>💡 Page biasa: title dari database, subtitle dari ACF, photo dari ACF atau fallback ocean.jpg.
7. single-event.php — tanpa argumen
php
<?php get_header();
while (have_posts()) {
the_post();
pageBanner();
?>8. single-professor.php — tanpa argumen
Sudah disetup di lesson sebelumnya.
9. single-program.php — tanpa argumen
php
<?php get_header();
while (have_posts()) {
the_post();
pageBanner();
?>10. single.php — tanpa argumen (blog posts)
php
<?php get_header();
while (have_posts()) {
the_post();
pageBanner();
?>Kapan Pakai Argumen vs Fallback?
| Situasi | Pendekatan |
|---|---|
| Archive/listing page (tidak ada post spesifik) | Berikan argumen title & subtitle |
| Single post/page (ada data di database) | Panggil tanpa argumen → fallback otomatis |
Archive generik (archive.php) | Gunakan get_the_archive_title() sebagai argumen |
Hasil
Sebelum: kode page banner terduplikasi 8-10 file, masing-masing ~15 baris HTML.
Sesudah: satu fungsi pageBanner() di functions.php, setiap template hanya 1 baris pemanggilan.
Jika perlu mengubah struktur HTML banner → cukup edit 1 tempat.