Menyisipkan Parameter Array pada in_category() – WordPress

Di tempat saya bekerja saat ini beberapa situs web dibangun menggunakan WordPress, saat ini pun saya meneruskan “warisan” programmer terdahulu yang membuat situs web ini. Lalu, saya pun menemukan kode yang menurut saya kurang efisien dalam penulisannya. Setelah saya coba pelajari ternyata programmer yang terdahulu belum memanfaatkan kemudahan penggunaan array sebagai parameter pada function in_category() WordPress.

Sebelum membahas kemudahan menggunakan parameter array pada function in_category(), sekilas menjelaskan terlebih dahulu apa yang akan saya lakukan dengan menggunakan function tersebut.

Terdapat suatu kasus dimana ada beberapa kategori menggunakan custom single page. Nah, untuk menentukan kategori n kepada single page n diarahkan oleh function in_category().

Kembali lagi ke parameter array yang diperbolehkan pada function in_category(). Saya menemukan orang lain menuliskan kode seperti ini:

<?php
if( in_category( '9' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '8' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '7' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '6' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '5' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '4' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '3' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '2' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '1' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else {
  include(TEMPLATEPATH . '/single-custom.php');
}
?>

Contoh diatas menggunakan else if yang panjang, tanpa penggunaan array. Jika menggunakan array dapat disederhanakan menjadi seperti ini:

<?php
/* initialize */
$ids = array('9', '8', '7', '6', '5', '4', '3', '2', '1');
/* conditional */
if( in_category( $ids ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else {
  include(TEMPLATEPATH . '/single-default.php');
}
?>

Lebih sederhanakan bukan? 😉

Optimasi Kode JavaScript menggunakan JavaScript Minifier

JavaScript Minifier terfavorit yang sering saya digunakan yaitu JavaScript Minifier. Memang masih banyak pilihan lainnya jika browsing melalui google. Akan tetapi salah satu keunggulan minifier tersebut dibandingkan dengan yang lainnya, yaitu tidak menimbulkan error ketika saya menyisipkan kode PHP didalam kode JavaScript yang akan di-minify.

Untuk melakukan un-minify, bisa menggunakan JS Beautifier. Terkadang saya suka mempelajari source code website lain, yang tentunya source code client-side, seperti JavaScript salah satunya. Dengan begitu saya bisa memperoleh pengalaman atau teknik baru dalam membangun website. Akan tetapi untuk JavaScript hampir semua source code yang tampil sudah dalam keadaan minified. Alasannya salah satunya untuk mengoptimalkan load performance suatu website. Namun akan menjadi sulit untuk dibaca jika dalam keadaan minified untuk mempelajarinya. Maka dari itu sangatlah berguna tools untuk un-minify ini bagi para newbie yang ingin belajar mempelajari source code. 😉

Links:

  1. JavaScript Minifier : http://javascript-minifier.com/
  2. JS Beautifier : http://jsbeautifier.org/

Cara Encode JSON Object (Manual Parse)

Sebelumnya ada posting yang membahas JSON mengenai cara melakukan Encode & Decode, dan posting ini merupakan pelengkap dari posting sebelumnya.

Saya melakukan encode dengan melakukan json_encode($array, JSON_FORCE_OBJECT), penambahan parameter JSON_FORCE_OBJECT berfungsi agar array key tetap “utuh” dalam format JSON.

Namun, terjadi permasalahan ketika saya mencoba pada PHP versi dibawah 5.3, yaitu versi 5.2.6. Konstanta atau parameter JSON_FORCE_OBJECT tidak dikenal alias ERROR! Karena parameter tersebut tersedia hanya pada versi 5.3 keatas.

Pada saat itu bukanlah hal yang mungkin untuk melakukan upgrade PHP ke versi 5.3 keatas karena sistem operasi pada Server yang digunakan tidak memiliki repositori PHP versi 5.3 keatas, sehingga diperlukan upgrade sistem operasi terlebih dahulu untuk bisa melakukan update ke PHP versi 5.3.

Solusinya? Array di parsing secara manual kedalam bentuk object, seperti ini:

<?php

$json = json_encode((object)$array);

?>

Selesai 😉

Cara melakukan JSON Encode & Decode pada PHP

Pada ReST, seringkali kita menggunakan format JSON atau XML untuk melakukan representasi record pada database.

Pada saat menggunakan format JSON dalam PHP, saya memiliki kasus sebuah array yang memiliki key default, seperti ini:

<?php

$default = array('Spirit', 'Walk', 'Run', 'Jump');

?>

Array Key tersebut secara default tentu akan sama seperti ini:

<?php

$default = array(0 => 'Spirit', 1 => 'Walk', 2 => 'Run', 3 => 'Jump');

?>

Permasalahannya adalah ketika array tersebut di encode kedalam format JSON menggunakan function json_encode(), array key tersebut “hilang”, menjadi seperti ini:

["Spirit","Walk","Run","Jump"]

Salah satu solusinya agar array key tersebut bisa “dibawa” kedalam format JSON, array tersebut harus berbentuk object, dengan menambahkan konstanta JSON_FORCE_OBJECT sebagai parameter function json_encode(), menjadi:

<?php

$encode = json_encode($default, JSON_FORCE_OBJECT);

?>

Sehingga menghasilkan:

{"0":"Spirit","1":"Walk","2":"Run","3":"Jump"}

Dengan menjadikannya object, array key tersebut akan “dibawa” dalam format JSON. 😀

Lalu untuk melakukan proses decode format JSON object tersebut ke dalam bentuk array, gunakan paramater TRUE pada function json_decode(), seperti ini:

<?php

$decode = json_decode($encode, TRUE);

?>

Hasil decode ketika dilakukan var_dump(), kembali menjadi array, seperti ini:

array(4) {
  [0]=>
  string(6) "Spirit"
  [1]=>
  string(4) "Walk"
  [2]=>
  string(3) "Run"
  [3]=>
  string(4) "Jump"
}

Selamat mencoba! 😀