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? 😉