So kannst du WordPress Post Types aus der Suche ausschließen!
Marc Wagner
Juni 21, 2022
Häufig benötigt man nicht alle Post Types in der Suche, oder möchte seinen Besuchern nur eine Auswahl zur Verfügung stellen. Da kann es recht hilfreich sein wenn man weiß wie man das ganze umsetzt.
In der folgenden Anleitung zeige ich euch zwei Wege, Post Types aus der Suche auszuschließen.
exclude_from_search #
Diese Variante ist hilfreich, wenn du eigene Post Types erstellst oder aber ganze Post Types dauerhaft aus der Suche ausschließen möchtest. Hierzu fügst du beim Anlegen deines Post Types die Einstellung “exclude_from_search” hinzu.
'exclude_from_search' => true
Ebenso einfach lassen sich Post Types von der Suche ausschließen, die über ein externes Plugin instanziiert wurden. Hierfür hinterlegst du in deinem Child Theme einfach das folgende Snippet ein und ersetzt “name_of_the_post_type” mit dem Namen des Post Types.
/** * Exclude Post Type from Search */ add_action('init', 'excludePostTypeFromSearch', 99); function excludePostTypeFromSearch(){ global $wp_post_types; if(post_type_exists('name_of_the_post_type') && isset($wp_post_types['name_of_the_post_type'])){ $wp_post_types['name_of_the_post_type']->exclude_from_search = true; } }
Nun werden alle Beiträge, die dem Post Type zugeordnet wurden, aus den Suchergebnissen entfernt. Dies kannst du für beliebig viele Post Types wiederholen.
pre_get_posts #
Alternativ zu der Variante von oben können wir auch die WordPress Query direkt manipulieren. Dadurch werden nur Post Types gesucht die wir explizit angeben. Dazu verwenden wir folgenden Filter:
- pre_get_posts
Folgendes PHP Snippet veranschaulicht wie die Such-Query anpassen kannst:
public function manipulate_search_query(WP_Query $query):WP_Query
{
if (!$query->is_search()) {
return $query;
}
if (is_admin()) {
return $query;
}
// Set the Post Types that should be searched for the keyword.
$query->set('post_type', array('docs', 'page', 'post'));
return $query;
}
/*
* Filter: pre_get_posts
*/
add_filter('pre_get_posts', 'manipulate_search_query', 10, 1);Sobald du das Skript einfügst, werden nur noch die Beiträge & Seiten vom Post Type “docs”, “page” und “post” durchsucht.
Wie Forge12 mit solchen Themen arbeitet
Forge12 betreibt und verantwortet umsatzkritische WordPress- und WooCommerce-Systeme im laufenden Betrieb. Bevor wir Systeme übernehmen oder weiterentwickeln, analysieren wir sie vollständig – technisch, strukturell und betrieblich. Das System Audit ist der Einstiegspunkt für jede Zusammenarbeit.
Artikel von:
Marc Wagner
Marc Wagner ist Gründer der Forge12 Interactive GmbH und verantwortlich für Betrieb, Absicherung und Weiterentwicklung umsatzkritischer WordPress- und WooCommerce-Systeme.
Seit über 20 Jahren arbeitet er an Websites, Online-Shops und individuellen Softwarelösungen – vom Mittelstand bis zu Strukturen börsennotierter Unternehmen. Sein Fokus liegt nicht auf Projekten, sondern auf dauerhaftem Betrieb: stabile Systeme, klare Verantwortlichkeiten und technische Entscheidungen mit wirtschaftlicher Konsequenz.
Bei Forge12 begleitet er Unternehmen, die ihre Systeme nicht nur bauen, sondern langfristig sicher betreiben und automatisieren wollen.

