Menyembunyikan Halaman dari Pencarian di WordPress

Saat kita menggunakan fitur pencarian di wordpress maka akan ditampilhan hasil yang didapat baik dari post dan juga halaman.

Untuk membatasi hasil pencarian sehingga tidak menampilkan halaman maka diperlukan sebuah modifikasi untuk melakukannya.

Terdapat banyak cara untuk tidak mengikutkan halaman pada hasil pencarian wordpress, yang paling mudah yaitu dengan menggunakan plugin.

Namun jika tidak ingin menggunakan plugin maka bisa menggunakan kode berikut ini dan meletakannya kedalam functions.php yang terdapat pada Templates Editor.

Menyembunyikan Halaman

function remove_pages_from_search($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','remove_pages_from_search');

Kode diatas berfungsi untuk membuat pencarian akan dialihkan untuk hanya menampilkan hasil pencarian yang berasal dari post saja.

Menyembunyikan Post

Sementara itu jika ingin melakukan kebalikannya yaitu hanya menampilkan halaman saja dan menyembunyikan post di wordpress dari hasil pencarian maka dapat menggunakan kode berikut ini.

function remove_posts_from_search($query) {
if ($query->is_search) {
$query->set('post_type', 'page');
}
return $query;
}
add_filter('pre_get_posts','remove_posts_from_search');

Kode di atas berfunsgi menampilkan hasil pencarian hanya dari halaman saja.

Menyembunyikan Post berdasarkan Kategori

Untuk menyembunyikan post secara spesifik dengan filter berdasarkan kategori maka kita perlu menggunakan ID dari kategori.

Untuk menemukan ID kategori di wordpress caranya sangat mudah yaitu dapat dilihat pada URL saat melakukan pengeditan kategori category&tag_ID=XXX

Setelah mendapatkan ID kategori yang akan kita gunakan untuk menyembunyikan post secara spesifik selanjutnya yaitu gunakan kode berikut ini.

function wpb_search_filter( $query ) {
if ( $query->is_search && !is_admin() )
$query->set( 'cat','-5, -11' );
return $query;
}
add_filter( 'pre_get_posts', 'wpb_search_filter' )

Perlu diketahui bahwa kita juga bisa mendambahkan kategori lebih dari satu jika ingin menyembunyikan dari halaman pencarian.

Menyembunyikan CPT

Untuk menyembunyikan Custom Post Types dari hasil pencarian di wordpress sebenarnya beberapa plugin pembuat CPT sudah memiliki fiturnya.

Jika ingin melakukan secara manual maka bisa menggunakan kode berikut ini.

function remove_post_type_page_from_search() {
    global $wp_post_types;
    $wp_post_types['postkamu']->exclude_from_search = true;
}
add_action('init', 'remove_post_type_page_from_search');

Nah, itulah beberapa cara dan kode yang dapat digunakan untuk memodifikasi hasil pencarian di WordPress tanpa menginstall plugin.