Langsung ke konten utama
loading

Conditional tag di Blogger.Com

Kondisional dalam fungsi logika di blogger.com yang sering dipakai saat membuat template seringkali lupa, jadi dicatat disini. Karena meskipun blog gratisan tapi fiturnya bagus. Tapi memiliki framework sendiri dalam otak-atik kodenya. Dan beda dengan misalnya wordpress yang menggunakan PHP, ini malah menggunakan XML.

Sebenarnya banyak sekali tag kondisionalnya, tapi yang berikut ini yang sering dibutuhkan karena kalau yang lain ngikut blogger.com aja dah, biar dibikinin.

Baiklah langsung saja dicatat dibawah ini kondisional tag dalam blogger.com.

Pada dasarnya ada 4 tag kondisi utama yang benar-benar berbeda yaitu berikut ini:

<!-- Item Page => Halaman posting artikel -->
<b:if cond='data:blog.pageType == "item"'>
  <!-- perintah -->
</b:if>
  
<!-- Static Page => laman => "/p/about.html" -->
<b:if cond='data:blog.pageType == "static_page"'>
  <!-- perintah -->
</b:if>
  
<!-- Error Page => 404 -->
<b:if cond='data:blog.pageType == "error_page"'>
  <!-- perintah -->
</b:if>
  
<!-- Index Page => "/search/label/Blogging" -->
<b:if cond='data:blog.pageType == "index"'>
  <!-- perintah -->
</b:if>
  
<!-- Archive Page => "/2017/08/" -->
<b:if cond='data:blog.pageType == "archive"'>
  <!-- perintah -->
</b:if>

Sedangkan dibawah ini, sebenarnya adalah bagian dari Index Page, hanya saja lebih disaring lagi lebih spesifik. Tapi kesemuanya itu masuk dalam kriteria index.

<!-- Label Page => "/search/label/Blogging" -->
<b:if cond='data:blog.searchLabel'>
  <!-- perintah -->
</b:if>
  
<!-- Label Page yang ditentukan => "/search/label/Blogging" -->
<b:if cond='data:blog.searchLabel== "Blogging"'>
  <!-- perintah -->
</b:if>
  
<!-- Search Page => "/search?q=acer+v3+371" -->
<b:if cond='data:blog.searchQuery'>
  <!-- perintah -->
</b:if>
  
<!-- Search Page yang ditentukan => "/search?q=acer+v3+371" -->
<b:if cond='data:blog.searchQuery == "acer v3 371"'>
  <!-- perintah -->
</b:if>
  
<!-- First Post saat index aktif -->
<b:if cond='data:post.isFirstPost'>
  <!-- perintah -->
</b:if>

Untuk First Post, itu menandai bahwa pada daftar index, dia adalah yang pertama, jadi maksudnya bukanlah posting pertama.

Berikut ini beberapa kondisi gabungan dan bisa menggunakan operator logika seperti AND, OR, NOT, IN dan lain-lain.

<!-- Kondisi Gabungan -->
<b:if cond='data:blog.pageType in {"static_page", "item"}'>
  <!-- perintah -->
</b:if>
  
<!-- Kondisi Gabungan not -->
<b:if cond='data:blog.pageType not in {"item","static_page"}'>
  <!-- perintah -->
</b:if>

Berikut ini contoh kondisi bertingkat sederhana:

<!-- Contoh kondisi lebih kompleks -->
<b:if cond='data:blog.pageType not in {"item","static_page"}'> 
  <b:if cond='data:post.title'>
 <!-- perintah -->
  </b:if>
  <b:if cond='data:post.isFirstPost'> 
   <!-- perintah -->
  </b:if>
<b:elseif cond='data:blog.pageType != "static_page"'/>
  <!-- perintah -->
</b:if>

Selain ditulis seperti semua format penulisan diatas, juga bisa langsung dimasukkan pada penulisan tag, untuk menghemat pengulangan perintah, perhatikan yang warna merah berikut ini:

<!-- Inject kondisi langsung pada tag html -->
<a class='label label-info' expr:href='data:post.url + "#comments"' expr:title='(data:post.numComments == 1 ? 1 : data:post.numComments) + " komentar"'><b:if cond='data:post.numComments == 1'>1<b:else/><data:post.numComments/></b:if></a>

Nah cukup untuk catatan agar tidak lupa. Sampai jumpa lagi.

UPDATE: Untuk conditional tag terbaru ada kode lebih pendek dan lebih mudah di kombinasi seperti berikut ini:

<b:if cond='data:view.isPost'>
 <!-- perintah -->
</b:if>

Kombinasi

<b:if cond='data:view.isPost or data:view.isPage'>
 <!-- perintah -->
</b:if>

<b:if cond='data:view.isPost and data:post.isFirstPost == "false"'>
 <!-- perintah -->
</b:if>

Dimasukkan dalam tag HTML sebagai class dengan b:class

<div class='post-body'>     
 <b:class cond='not data:view.isPage' name='entry-content'/>
 ...
</div>

Conditional tag baru selengkapnya dibawah ini:

isSingleItem post and page true
isPage page true
isPost post true
isError 404 true
isMultipleItems homepage, archive, search, label true
isHomepage homepage true
isArchive archive true
isSearch search, label, true
isLabelSearch label true

Komentar 4  Recent Comments

  1. Kode iki iso dipangan tah bos? xixixi

    BalasHapus
  2. Kalau kode:

    {code}<b:if cond='data:blog.pageType == "error_page"'>
    <!-- perintah -->
    </b:if>{/code}

    Itu untuk apa dalam penerapannya?

    BalasHapus
    Balasan
    1. Untuk kondisi error, misalnya untuk error 404 (halaman tidak ditemukan)

      Hapus