10. März 2017

WordPress:
Seitenweite Suche mit Omnisearch und Search Everything

Leider verfügt  WordPress über keine seitenweite Suche, die in allen Post Types gleichzeitig sucht. Das ist aber vor allem bei großen Seiten sehr praktisch. Zum Glück lässt sich diese Funktion relativ einfach mit den Plugins Jetpack Omnisearch und Search Everything nachrüsten:

Schritt 1: Jetpack installieren

Jetpack installieren und Omnisearch aktivieren:

Jetpack Omnisearch

Tipp: Man muss Jetpack nicht zwingend mit WordPress.com verbinden, Omnisearch lässt sich auch im Development Mode verwenden. Dazu einfach die Zeile define('JETPACK_DEV_DEBUG', true); in die wp-config.php einfügen.

Schritt 2: Zusätzliche Post Types für die Suche aktivieren

Mit folgender Funktion in der functions.php lassen sich alle eigenen Post Types zur Omniserach Suche hinzufügen:

// Zusätzliche Post Types für Omnisearch
function mn_omnisearch_add_providers()
{
	// Prüfen ob die Omnisearch Klasse existiert
	if ( class_exists( 'Jetpack_Omnisearch_Posts' ) )
	{
		// Neue Post Types mit dem Post Types Slug hinzufügen
		new Jetpack_Omnisearch_Posts( 'aktionen' );
		new Jetpack_Omnisearch_Posts( 'produkte' );
		new Jetpack_Omnisearch_Posts( 'tarife' );
		new Jetpack_Omnisearch_Posts( 'partner' );
		new Jetpack_Omnisearch_Posts( 'widgets' );
		new Jetpack_Omnisearch_Posts( 'overlays' );
		new Jetpack_Omnisearch_Posts( 'inhalte' );
		new Jetpack_Omnisearch_Posts( 'templates' );
		new Jetpack_Omnisearch_Posts( 'tracking_codes' );
	}
}
add_action('omnisearch_add_providers', 'mn_omnisearch_add_providers');

Schritt 3: Search Everything installieren und konfigurieren

Damit sich die Suche nicht nur auf einige wenige Felder der Beiträge beschränkt, installieren wir im letzten Schritt das Plugin Search Everything und konfigurieren, welche Daten bei der Suche berücksichtigt werden sollen:

Search Everything

Ergebniss

Und so sieht am Ende das Ergebnis aus (auszugsweise):

Seitenweite Suche mit Omnisearch in Aktion (1)
Seitenweite Suche mit Omnisearch in Aktion (2)