Jak usunąć strony z wyszukiwania?

13

Nie muszę wyszukiwać stron w mojej witrynie i chcę tylko wyszukiwać posty, czy jest na to sposób? Dzięki


źródło

Odpowiedzi:

29

Poniższe informacje powinny uniemożliwić wyszukiwanie typu postu na stronie.

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
źródło
Gdzie mam umieścić ten kod? Dzięki
Możesz umieścić go w functions.php swojego motywu.
prettyboymp
Dziękuję bardzo. Właśnie skopiowałem i wkleiłem i działa idealnie
13

Dobrze działa również następujący w functions.php:

//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
źródło
niech będzie rozwiązanie. bardziej elegancki, łatwiejszy w utrzymaniu. hte powyżej modyfikuje parametry typu postu, tym samym samo zapytanie wyszukiwania. +1
kaiser
Modyfikowanie obiektu typu post dla typu postu „strona” jest lepszym rozwiązaniem. To rozwiązanie wymusza twarde ustawienie typu postu jako „post” dla wszystkich zapytań, które uniemożliwiłyby pojawienie się niestandardowych typów postów w wyszukiwaniu, jeśli witryna taka miała. Globalne ustawienie właściwości exclude_from_search obiektu typu post „page” oznacza, że ​​każdy kod, który zależy od sprawdzenia tej właściwości, będzie miał poprawne informacje.
prettyboymp
Nieco odpowiedni link z odrobiną więcej informacji: codex.wordpress.org/…
its_me
Działa dobrze, ale nie pokazuje tematu w bbpress, więc nie jest dobrze. Za pomocą „$ wp_post_types ['page'] -> exclude_from_search = true;” wydaje się być dobrym rozwiązaniem
Kishore Sahoo,
0

umieść to w pliku search.php

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

tuż pod tym kodem -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

więcej informacji można znaleźć tutaj http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages

Andrzej
źródło
Nie mam pliku search.php, jeśli pobiorę jeden z innego motywu, czy to zadziała? Dzięki
tak. najpierw utwórz pusty search.php, a następnie skopiuj i wklej kod z index.php. następnie zrób to, co ci powiedziałem powyżej.
andrewk
1
właściwie powinieneś użyć kodu @ prettyboymp. jest łatwiejsze i robi to, o co prosiłeś. przetestowałem to. jeśli chcesz ...
andrewk