Wie entferne ich Pages aus der Suche?


13

Ich muss nicht nach Seiten auf meiner Website suchen und möchte nur nach Beiträgen suchen. Gibt es eine Möglichkeit, dies zu tun? Vielen Dank

search 

Antworten:


27

Das Folgende sollte den Typ des Seitenposts nicht länger durchsuchbar machen.

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

Wo platziere ich diesen Code? Vielen Dank

Sie können es in die functions.php Ihres Themas einfügen.
prettyboymp

Vielen Dank. Ich habe es einfach kopiert und es funktioniert perfekt

13

Das Folgende in functions.php funktioniert auch gut:

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

Soll die Lösung sein? eleganter, pflegeleichter. In den obigen Abschnitten werden nur Parameter vom Typ "Post" geändert, dies ist die Suchanfrage selbst. +1
Kaiser

Das Ändern des Beitragstypobjekts für den Beitragstyp "Seite" ist eine bessere Lösung. Diese Lösung erzwingt, dass der Beitragstyp für alle Suchanfragen als "Beitrag" festgelegt wird, damit benutzerdefinierte Beitragstypen nicht in der Suche angezeigt werden, wenn eine Website über solche verfügt. Wenn Sie die Eigenschaft exclude_from_search des Objekts vom Typ 'page' global festlegen, verfügt jeder Code, der von der Überprüfung dieser Eigenschaft abhängt, über die richtigen Informationen.
Prettyboymp

Etwas relevanter Link mit ein bisschen mehr Information: codex.wordpress.org/…
its_me

Funktioniert gut, aber kein Thema in BBPress, also ist es nicht gut. Verwenden von "$ wp_post_types ['page'] -> exclude_from_search = true;" ist eine gute Option scheint
Kishore Sahoo

0

Gib das in deine search.php ein

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

direkt unter diesem Code -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

Weitere Informationen finden Sie hier http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages


Ich habe keine search.php, wenn ich eine von einem anderen Thema abrufe. Funktioniert das? Vielen Dank

Ja. erst eine leere search.php erstellen, dann den code aus index.php kopieren und einfügen. dann mach was ich dir oben gesagt habe.
Andrewk

1
eigentlich solltest du @ prettyboymps code verwenden. Es ist einfacher und macht, was Sie gefragt haben. Ich habe es getestet. wenn du willst ..
Andrewk

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.