So kannst du WordPress Post Types aus der Suche ausschließen!

Marc Wag­ner

Juni 21, 2022

2 min read|

Häu­fig benö­tigt man nicht alle Post Types in der Suche, oder möch­te sei­nen Besu­chern nur eine Aus­wahl zur Ver­fü­gung stel­len. Da kann es recht hilf­reich sein wenn man weiß wie man das gan­ze umsetzt.

In der fol­gen­den Anlei­tung zei­ge ich euch zwei Wege, Post Types aus der Suche aus­zu­schlie­ßen.

exclude_from_search #

Die­se Vari­an­te ist hilf­reich, wenn du eige­ne Post Types erstellst oder aber gan­ze Post Types dau­er­haft aus der Suche aus­schlie­ßen möch­test. Hier­zu fügst du beim Anle­gen dei­nes Post Types die Ein­stel­lung “exclude_from_search” hin­zu.

'exclude_from_search' => true

Eben­so ein­fach las­sen sich Post Types von der Suche aus­schlie­ßen, die über ein exter­nes Plug­in instan­zi­iert wur­den. Hier­für hin­ter­legst du in dei­nem Child The­me ein­fach das fol­gen­de Snip­pet 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 wer­den alle Bei­trä­ge, die dem Post Type zuge­ord­net wur­den, aus den Such­ergeb­nis­sen ent­fernt. Dies kannst du für belie­big vie­le Post Types wie­der­ho­len.

pre_get_posts #

Alter­na­tiv zu der Vari­an­te von oben kön­nen wir auch die Word­Press Query direkt mani­pu­lie­ren. Dadurch wer­den nur Post Types gesucht die wir expli­zit ange­ben. Dazu ver­wen­den wir fol­gen­den Fil­ter:

  • pre_get_posts

Fol­gen­des PHP Snip­pet ver­an­schau­licht wie die Such-Query anpas­sen 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 ein­fügst, wer­den nur noch die Bei­trä­ge & Sei­ten vom Post Type “docs”, “page” und “post” durch­sucht.

Wie Forge12 mit solchen Themen arbeitet

Forge12 betreibt und ver­ant­wor­tet umsatz­kri­ti­sche Word­Press- und Woo­Com­mer­ce-Sys­te­me im lau­fen­den Betrieb. Bevor wir Sys­te­me über­neh­men oder wei­ter­ent­wi­ckeln, ana­ly­sie­ren wir sie voll­stän­dig – tech­nisch, struk­tu­rell und betrieb­lich. Das Sys­tem Audit ist der Ein­stiegs­punkt für jede Zusam­men­ar­beit.

88e86fcb816eff22bc917094df2862d8dd5c0e978b333e6dd5f36f808990c261 96

Arti­kel von:

Marc Wag­ner

Marc Wag­ner ist Grün­der der Forge12 Inter­ac­ti­ve GmbH und ver­ant­wort­lich für Betrieb, Absi­che­rung und Wei­ter­ent­wick­lung umsatz­kri­ti­scher Word­Press- und Woo­Com­mer­ce-Sys­te­me.

Seit über 20 Jah­ren arbei­tet er an Web­sites, Online-Shops und indi­vi­du­el­len Soft­ware­lö­sun­gen – vom Mit­tel­stand bis zu Struk­tu­ren bör­sen­no­tier­ter Unter­neh­men. Sein Fokus liegt nicht auf Pro­jek­ten, son­dern auf dau­er­haf­tem Betrieb: sta­bi­le Sys­te­me, kla­re Ver­ant­wort­lich­kei­ten und tech­ni­sche Ent­schei­dun­gen mit wirt­schaft­li­cher Kon­se­quenz.

Bei Forge12 beglei­tet er Unter­neh­men, die ihre Sys­te­me nicht nur bau­en, son­dern lang­fris­tig sicher betrei­ben und auto­ma­ti­sie­ren wol­len.

Hast du eine Fra­ge? Hin­ter­lass bit­te einen Kom­men­tar