Jika Anda menjalankan sebuah proyek situs yang kompleks dengan berbasis WordPress, Anda mungkin sudah banyak membuat beberapa custom post type di dalamnya. Seperti yang sudah pernah saya tuliskan sebelumnya, custom post type berguna untuk membuat tulisan yang lebih spesifik daripada kategori yang sudah Anda buat sebelumnya. Bagi Anda yang belum tahu cara membuatnya, silahkan baca artikel sebelumnya tentang cara membuat custom post type.

Beberapa waktu yang lalu saya juga sudah menulis cara membatas pencarian untuk custom post type tertentu. Lalu bagaimana jika Anda ingin memisahkan masing-masing post type dengan kolom pencarian yang berbeda? Caranya sebenarnya sangat mudah. Anda hanya perlu mengetahui dasar template search form WordPress. Silahkan masukkan kode kolom pencarian di bawah ini ke dalam situs Anda di bagian mana saja Anda ingin menampilkannya:





Untuk memberikan perintah pencarian khusus untuk kolom ini, Anda hanya perlu merubah paramater normal pada baris “hidden” kode di atas. Berikutnya, silahkan masuk ke search.php Anda. Cut semua kode pada halaman search.php tersebut lalu pindahkan lebih dulu ke sebuah notepad baru. Kemudian pada search.php yang sudah kosong, silahkan masukkan kode di bawah ini:


if(isset($_GET['search-type'])) {
$type = $_GET['search-type'];
if($type == 'random') {
load_template(TEMPLATEPATH . '/normal-search.php');
} elseif($type == 'film') {
load_template(TEMPLATEPATH . '/film-search.php');
}
}

Kode di atas memerintahkan WordPress untuk mengarahkan pencarian ke file php masing-masing berdasarkan jenis pencarian yang dilakukan. Pada contohnya ini, anggap saja Anda ingin membuat 2 pencarian yang berbeda, yaitu pencarian postingan normal dan pencarian khusus untuk custom post type ‘film’. Silahkan buat 2 file php baru dengan nama yang berbeda, anggap saja standar-search.php dan film-search.php.

Pada standar-search.php, silahkan masukkan kode di bawah ini:


$args = array( 'post_type' => 'post' );
$args = array_merge( $args, $wp_query->query );
query_posts( $args );

Kemudian copy kembali kode loop search yang sudah Anda pindahkan ke notepad tadi tepat di bawah kode di atas.

Pada kode film-search.php, masukkan kode di bawah ini:


$args = array( 'post_type' => 'film' );
$args = array_merge( $args, $wp_query->query );
query_posts( $args );

Kemudian silahkan paste lagi kode loop dari notepad tadi ke bagian bawah kode di atas.

* * * * *
Buku Formula Cinta

1 COMMENT

LEAVE A REPLY