Bagaimana cara menghapus Halaman dari pencarian?

13

Saya tidak perlu mencari halaman di situs saya dan hanya ingin mencari posting, apakah ada cara untuk melakukannya? Terima kasih


sumber

Jawaban:

28

Di bawah ini seharusnya membuat jenis posting halaman tidak lagi dapat dicari.

function remove_pages_from_search() {
    global $wp_post_types;
    $wp_post_types['page']->exclude_from_search = true;
}
add_action('init', 'remove_pages_from_search');
prettyboymp
sumber
Di mana saya menempatkan kode itu? Terima kasih
Anda dapat menempatkannya di functions.php dari tema Anda.
prettyboymp
Terima kasih banyak. Saya hanya menyalinnya dan berfungsi dengan baik
13

Berikut ini di functions.php juga berfungsi dengan baik:

//Remove pages from search results
function mySearchFilter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','mySearchFilter');
Arnold
sumber
shuold menjadi solusi. lebih elegan, lebih bisa dipelihara. hte di atas hanya memodifikasi params jenis posting, ini permintaan pencarian itu sendiri. +1
kaiser
Memodifikasi objek tipe posting untuk tipe posting 'halaman' adalah solusi yang lebih baik. Solusi ini memaksa jenis posting menjadi sulit ditetapkan sebagai 'posting' untuk semua permintaan pencarian yang akan membuat setiap jenis posting kustom tidak muncul dalam pencarian jika situs punya. Secara global menyetel properti exclude_from_search dari objek tipe posting 'halaman' berarti bahwa setiap kode yang bergantung pada pemeriksaan properti ini akan memiliki informasi yang benar.
prettyboymp
Tautan yang agak relevan dengan sedikit informasi lebih lanjut: codex.wordpress.org/…
its_me
Berfungsi dengan baik tetapi tidak mengangkat topik di bbpress, jadi itu tidak baik. Menggunakan "$ wp_post_types ['page'] -> exclude_from_search = true;" sepertinya pilihan yang bagus
Kishore Sahoo
0

letakkan ini di search.php Anda

<?php if (is_search() && ($post->post_type=='page')) continue; ?>

tepat di bawah kode ini -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

Anda dapat menemukan lebih banyak di sini http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages

andrewk
sumber
Saya tidak memiliki search.php jika saya mengambil satu dari tema lain apakah itu akan berfungsi? Terima kasih
Iya. pertama buat search.php kosong lalu salin dan tempel kode dari index.php. kemudian lakukan apa yang saya katakan di atas.
andrewk
1
sebenarnya Anda harus menggunakan kode @ prettyboymp. lebih mudah dan melakukan apa yang Anda minta. Saya mengujinya. jika Anda mau ..
andrewk