WordPress-Suchwidget auf bestimmte Post Types beschränken

Für eine WordPress-Installation war ich auf der Suche nach einer Möglichkeit die Suche bzw. im Speziellen das Suchwidget so zu beschränken das nur die Post Types page und post durchsucht und angezeigt werden. Möglich ist dies, indem ein Filter für pre_get_posts in die functions.php des Themens hinzugefügt wird:

function search_only_in_specific_post_types( $query ) {
	
  // Modify query (but only in frontend)
  if ( $query->is_search && is_admin() == false ) {
    $query->set( 'post_type', array( 'page','post') );
  }
	
  return $query;
}

add_filter( 'pre_get_posts', 'search_only_in_specific_post_types' );

Der Filter passt die Query an, wenn die Query für eine Suche genutzt wird und diese Nutzung aus dem Frontend heraus geschieht. Die Begrenzung auf des Frontend ist notwendig um keine Suchqueries im Backend zu stören. Damit würde die modifizierte Suche nur noch Dokumente mit dem Post Type page und post finden.

Post Types unter WordPress ändern

Vor ein paar Tagen stand ich vor dem Problem, dass ich für einige WordPress-Beiträge den Post Type ändern wollte. Nachdem mir einige Sekunden eine Lösung unter Zuhilfenahme der Datenbank vorschwebte, entschied ich mich dann doch erst einmal nach einem passenden Plugin für WordPress zu suchen. Fündig wurde ich bei dem Post Type Switcher von John James Jacoby.

Post Type Switcher
Preis: Kostenlos

Mit diesem Plugin erhält man während der Bearbeitung eines Beitrages, eine zusätzliche Option mit welcher auch der Post Type geändert werden kann. Auch die massenhafte Änderung des Post Type, über viele Beiträge, ist mit dem Plugin problemlos zu bewerkstelligen.