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

search 

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');

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');

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


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.