Manchmal möchte man bestimmte Kategorien aus der WordPress Suche ausschließen. Viele Snippets die man so im Netz findet, sind nicht zufriedenstellend oder überdimensioniert.
Hier kommt ein simpler Filter, mit dem man das problemlos umsetzen kann.
Die WordPress-Suchfunktion ist ein mächtiges Tool, um Inhalte auf einer Website zugänglich zu machen. Doch nicht immer sollen alle Inhalte durchsuchbar sein – insbesondere Kategorien, die interne oder weniger relevante Inhalte enthalten, können von der Suche ausgeschlossen werden.
In diesem Artikel zeige ich dir, warum es sinnvoll sein kann, Kategorien von der Suche auszuschließen, und wie du dies umsetzen kannst – sowohl per Code als auch mit einem Plugin.
Inhaltsverzeichnis:
Warum Kategorien von der Suche ausschließen?
Es gibt zahlreiche Anwendungsfälle, in denen Website-Betreiber Kategorien von der Suche ausnehmen möchten:
- Interne Kategorien: Kategorien, die für redaktionelle Zwecke genutzt werden (z. B. „Entwürfe“ oder „Archiv“), sollten Besuchern nicht angezeigt werden.
- Unrelevante Inhalte: Inhalte wie Pressemitteilungen, rechtliche Informationen oder alte Blogposts sind oft nicht relevant für die Zielgruppe.
Einfach den folgenden Filter in die functions.php einbauen und die gewünschte Kategorie-ID eintragen.
function custom_search_filter( $query ) { if ( $query->is_search && !is_admin() ) $query->set( 'cat','-7' ); return $query; } add_filter( 'pre_get_posts', 'custom_search_filter' );
Alternativer Code
function exclude_categories_from_search($query) { if ($query->is_search && !is_admin()) { // IDs der auszuschließenden Kategorien $excluded_category_ids = array(1, 2); // Ersetze mit den IDs deiner Kategorien $query->set('category__not_in', $excluded_category_ids); } return $query; } add_filter('pre_get_posts', 'exclude_categories_from_search');
So funktioniert der Code
- Die Bedingung
if ($query->is_search && !is_admin())
stellt sicher, dass die Anpassung nur auf Frontend-Suchen wirkt und nicht im WordPress-Admin-Bereich. - Mit
category__not_in
kannst du Kategorien anhand ihrer IDs ausschließen. Diese IDs findest du unter Beiträge > Kategorien in der WordPress-Verwaltung (sie erscheinen in der URL, wenn du eine Kategorie bearbeitest).
Kategorien per Plugin von der WordPress Suche ausschließen
Nicht jeder möchte oder kann am Code arbeiten. Zum Glück gibt es Plugins, die diese Aufgabe übernehmen – ganz ohne Programmierkenntnisse.
Empfohlenes Plugin: Search Exclude
- Beschreibung: Dieses Plugin erlaubt es dir, einzelne Beiträge oder Kategorien von der Suche auszuschließen. Es ist einfach zu bedienen und wird regelmäßig aktualisiert.
- Vorteile:
- Intuitive Benutzeroberfläche
- Keine Code-Anpassungen erforderlich
- Zuverlässige Updates und aktive Community
Fazit: Man sieht, es ist kein Hexenwerk einzelne Kategorien nicht suchbar zu machen. Die WordPress-Filter spielen hier ihre ganze Eleganz aus. Alternativ nutzt du einfach ein Plugin dafür.
marek
Prima eigentlich…
Was passiert mit den Kommentaren zu den Themen in der versteckten Kategorie?
Die sind leider schön zu lesen.. als letzte in einem Beispiel. Lösung möglich ?
Gruß..
Viktor
Geht sicher auch anders herum, oder? Also, wenn man statt -7 eine 7 einträgt, dann wird nur in Kategorie 7 gesucht?