Sayfaları aramadan nasıl kaldırabilirim?


13

Sitemdeki sayfaları aramam gerekmiyor ve yalnızca yayın aramak istiyorum, bunu yapmanın bir yolu var mı? Teşekkürler

search 

Yanıtlar:


29

Aşağıdakiler, sayfa yayın türünün artık arama yapamamasını sağlamalıdır.

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

Bu kodu nereye koyabilirim? Teşekkürler

Temanızın function.php dosyasına yerleştirebilirsiniz.
prettyboymp

Çok teşekkürler. Ben sadece kopya yapıştırdı ve mükemmel çalışıyor

13

Function.php içinde aşağıdakiler de iyi çalışır:

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

merhamet olmak shuold. daha zarif, daha sürdürülebilir. hte, yazı tipi parametrelerini değiştirir, bu da arama sorgusunun kendisidir. +1
kaiser

Yazı tipi nesnesini 'sayfa' yazı tipi için değiştirmek daha iyi bir çözümdür. Bu çözüm, herhangi bir özel gönderi türünün, bir site varsa aramada görünmesini engelleyecek tüm arama sorguları için gönderi türünü 'gönderi' olarak ayarlamaya zorlar. Global olarak 'page' post type nesnesinin exclude_from_search özelliğinin ayarlanması, bu özelliğin kontrol edilmesine bağlı olan herhangi bir kodun doğru bilgilere sahip olacağı anlamına gelir.
prettyboymp

Biraz daha fazla bilgi içeren biraz alakalı bağlantı: codex.wordpress.org/…
its_me

Iyi çalışır ama bbpress konu shoing değil, bu yüzden iyi değil. "$ Wp_post_types ['sayfa'] -> exclude_from_search = true;" iyi bir seçenek görünüyor
Kishore Sahoo

0

bunu search.php dosyasına koy

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

bu kodun hemen altında -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

daha fazla bilgiyi burada bulabilirsiniz http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages


Başka bir temadan birini alırsam bir search.php yok, işe yarayacak mı? Teşekkürler

Evet. önce boş bir search.php oluşturun, sonra kodu index.php'den kopyalayıp yapıştırın. o zaman yukarıda söylediğim şeyi yap.
andrewk

1
aslında @ prettyboymp kodunu kullanmalısınız. daha kolay ve istediğini yapar. test ettim. isterseniz ..
andrewk

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.