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

search 

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

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

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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.