Penjelasan
Apa itu <b:if>, <b:elseif>, dan <b:else>?
Tag <b:if>, <b:elseif>, dan <b:else> adalah tag kondisional (conditional logic) yang digunakan di dalam template Blogger berbasis XML. Fungsinya adalah untuk menampilkan atau menyembunyikan bagian tertentu dari template berdasarkan kondisi (syarat) yang kita tentukan.
Sederhananya, tag ini bekerja seperti logika "JIKA... MAKA..." dalam pemrograman:
<b:if>→ Menjalankan blok kode jika kondisi bernilai benar (true).<b:elseif>→ Memberikan kondisi alternatif jika kondisi<b:if>sebelumnya bernilai salah (false). Bisa digunakan lebih dari satu kali.<b:else>→ Menjalankan blok kode jika semua kondisi di atas salah (sebagai "pilihan terakhir"). Tidak memerlukan kondisi.
Dengan tag ini, Anda bisa membuat template yang dinamis, misalnya menampilkan judul berbeda di halaman utama dan halaman postingan, atau menampilkan sidebar hanya di halaman tertentu.
Catatan:
<b:elseif> dan <b:else> baru tersedia pada Layout/Theme versi 3 (template modern Blogger). Versi lama hanya mendukung <b:if> saja.
Sintak Dasar
1. Bentuk dasar (hanya <b:if>)
<b:if cond='KONDISI'>
<!-- Kode yang dijalankan jika KONDISI benar -->
</b:if>
2. <b:if> dengan <b:else>
<b:if cond='KONDISI'>
<!-- Dijalankan jika KONDISI benar -->
<b:else/>
<!-- Dijalankan jika KONDISI salah -->
</b:if>
3. Bentuk lengkap (<b:if>, <b:elseif>, <b:else>)
<b:if cond='KONDISI_1'>
<!-- Dijalankan jika KONDISI_1 benar -->
<b:elseif cond='KONDISI_2'/>
<!-- Dijalankan jika KONDISI_1 salah & KONDISI_2 benar -->
<b:else/>
<!-- Dijalankan jika semua kondisi di atas salah -->
</b:if>
⚠️ Perhatikan penulisan tag:
<b:if>harus ditutup dengan</b:if>.<b:elseif/>dan<b:else/>adalah self-closing tag (ditutup dengan/>sendiri), bukan</b:elseif>atau</b:else>.
Atribut yang Bisa Digunakan
| Atribut | Digunakan pada | Status | Keterangan |
|---|---|---|---|
cond |
<b:if> & <b:elseif> |
Wajib | Berisi kondisi/syarat yang akan dievaluasi (bernilai true atau false). |
<b:else> tidak memiliki atribut karena ia hanya berfungsi sebagai penutup logika.
Contoh Penggunaan
Contoh 1: Menampilkan judul berbeda di Beranda dan Postingan
<b:if cond='data:view.isHomepage'>
<h1>Selamat Datang di Blog Saya!</h1>
<b:else/>
<h2><data:post.title/></h2>
</b:if>
Penjelasan: Jika halaman adalah Beranda, tampilkan sambutan. Jika bukan (misalnya halaman postingan), tampilkan judul postingan.
Contoh 2: Menampilkan pesan sesuai tipe halaman (3 kondisi)
<b:if cond='data:view.isPost'>
<p>Anda sedang membaca sebuah postingan.</p>
<b:elseif cond='data:view.isPage'/>
<p>Anda sedang membuka halaman statis.</p>
<b:elseif cond='data:view.isArchive'/>
<p>Anda sedang melihat arsip blog.</p>
<b:else/>
<p>Selamat datang di beranda!</p>
</b:if>
Penjelasan: Blogger akan mengecek kondisi satu per satu dari atas. Begitu menemukan kondisi yang benar, blok itu yang ditampilkan, sisanya diabaikan.
Contoh 3: Menampilkan elemen hanya jika postingan punya judul
<b:if cond='data:post.title'>
<h2 class='post-title'><data:post.title/></h2>
</b:if>
Penjelasan:
Tag <h2> hanya muncul jika postingan memiliki judul. Jika judul kosong, elemen tidak akan dirender sama sekali (mencegah Tag <h2> kosong).
Contoh 4: Menggunakan operator and, or, dan not
<!-- Menampilkan sidebar hanya di Beranda ATAU Arsip -->
<b:if cond='data:view.isHomepage or data:view.isArchive'>
<div class='sidebar'>Konten Sidebar</div>
</b:if>
<!-- Menampilkan iklan HANYA di postingan yang punya judul -->
<b:if cond='data:view.isPost and data:post.title'>
<div class='iklan'>Tempat Iklan</div>
</b:if>
<!-- Menampilkan banner di SEMUA halaman KECUALI beranda -->
<b:if cond='not data:view.isHomepage'>
<div class='banner'>Banner Promosi</div>
</b:if>
Contoh 5: Kondisi bertingkat (nested if)
<b:if cond='data:view.isPost'>
<div class='postingan'>
<h2><data:post.title/></h2>
<b:if cond='data:post.labels'>
<ul class='label-list'>
<b:loop values='data:post.labels' var='label'>
<li><data:label.name/></li>
</b:loop>
</ul>
<b:else/>
<p>Postingan ini tidak memiliki label.</p>
</b:if>
</div>
</b:if>
Penjelasan: Pertama dicek apakah halaman adalah postingan. Jika ya, dicek lagi apakah postingan punya label. Ini disebut nested (bersarang).