Die WordPress Suche – erweitern, verbessern und funktionsfähig machen

Die Suchfunktion von WordPress ist nicht gerade überragend. Und das bei der wohl beliebtesten Blogsoftware, die auch als leicht erweiterbares CMS auf kleinen Webseiten problemlos verrichten kann.

Eine Suche auf einer Standard-WordPress-Installation bringt nur chronologisch sortierte Ergebnisse zu einem Suchbegriff hervor. Doch warum gibt es nicht den am besten passenden Artikel zu dem gesuchten Begriff?! Und wie kann man die Suchfunktion von WordPress wenigstens etwas herausputzen? Und sinnvoll erweitern?

Code der Suchfunktion von WordPress

Code der Suchfunktion von WordPress


Erwartungen an die WordPress Suche

Eine vernünftige Suchfunktion ermöglicht eine bessere Orientierung auf einer Internetseite. Andere und ähnliche Artikel können gefunden werden, zu anderen -vielleicht im Nebensatz erwähnten Themen- kann der Besucher recherchieren. Zeitarchive sind bei einer thematischen Suche kein Ersatz und auch Kategorie- bzw. Tagarchive sind manchmal zu unübersichtlich.

Was soll eine gute Suchfunktion leisten können?

  • Sie soll die Inhalte nach Relevanz sortiert präsentieren.
  • Sie soll statische Seiten und chronologische Blogeinträge gleichermaßen einbeziehen.
  • Sie soll auch Inhalte von Besuchern (Kommentare) miteinbeziehen.
  • Sie soll Möglichkeiten zur Verfeinerung / Verbesserung einer Suchanfrage anbieten (z.B. in Form von ähnlichen Suchen).
  • Sie soll Rechtschreibfehler abfangen (z.B. wie bei einer Google-Suche: Meinten Sie: …).
  • Sie soll auch Ergebnisse für Synonyme aufzeigen.
Apple-Suchbox mit search suggest

Apple-Suchbox mit search suggest

Spielereien?!

Selbstverständlich sind auch noch weitere Funktionen einer Suchfunktion denkbar. So könnte es eine Suggest-Funktion geben, die bereits während der Eingabe eines Suchbegriffes, diesen versucht zu vervollständigen und eine Anzahl der Treffer ausgibt.

Google hat mit Google Suggest eine solche Funktion und auch andere Webseiten wie Apple (Suchbox oben rechts) bieten es an. Da wird Suchen zu einem Erlebnis, wenn Apple sogar noch kleine Bilder einbettet (siehe Screenshot rechts).

Erwartungen umsetzen …Einige WordPress-Plugins

Möchte man nicht so weit gehen und die WordPress-Suche gleich komplett deaktivieren (Anleitung), sollte man sie vielleicht mit dem ein oder anderen Plugin aus dem WordPress Plugin Verzeichnis verbessern.
Joost de Valk stellt in einem älteren, englischen Artikel mehrere Plugins vor, um die Suchfunktion zu verbessern.

WordPress Plugin Search Suggest

So liefert Search Suggest bei einer Suche ähnliche Suchanfragen aus. Und versucht auch Rechtschreibfehler abzufangen, indem es die bekannte Funktion Meinten Sie: … ausgibt. Dazu wird eine API von Yahoo! benutzt.
Problematisch bei der Anzeige von ähnlichen Suchanfragen ist allerdings, dass diese nicht unbedingt auf der eigenen WordPress-Installation zu einem Ergebnis führen müssen. Die Yahoo! Suche kann bei vielen Eingrenzungen auch weitere Ergebnisse liefern. Bei einer kleinen Seite wie meiner ist eine solche Eingrenzung der Suchergebnisse aber in vielen Fällen nicht erfolgreich.
Trotz angegebener Kompatibilität bis WordPress 2.6 funktioniert es nach meinen Tests problemlos auf einer WP 2.7 Installation. Auch muss das Plugin noch händisch bearbeitet werden, damit die Hinweistexte nicht auf englisch erscheinen. Bei einer deutschsprachigen Seite doch eher ein Muss.
Dazu muss man das Plugin über einen FTP-Client erst beschreibbar machen und sucht dann im WordPress Plugin Editor diesen Code:

		if ($full) {
			echo "<p>Did you mean <strong>".$output."</strong>?</p>";
		} else {
			return "<p>Did you mean <strong>".$output."</strong>?</p>";
		}

Und ändert den englischen Text:

		if ($full) {
			echo "<p>Meintest du vielleicht: <strong>".$output."</strong>?</p>";
		} else {
			return "<p>Meintest du vielleicht: <strong>".$output."</strong>?</p>";
		}

Und fügt dann in seinem WordPress Theme nur noch bei der Anzeige der Suchergebnisse diesen Code-Schnipsel ein:

<?php if ( function_exists('spell_suggest') ) { spell_suggest(); } ?>

Search Unleashed

Um die Suchfunktion auf Beiträge, statische WordPress Seiten, Kommentare und Inhalte von Plugins zu erweitern, empfiehlt sich Search Unleashed. Bei einer Suchanfrage werden passende Snippets (Textauszüge) angezeigt und die jeweiligen Suchbegriffe auch farblich hervorgehoben.
Ebenso bekommen Besucher von Suchmaschinen die gesuchten Begriffe in einem kleinen Textfeld oberhalb des Artikels angezeigt und die Fundstellen werden auch hier hervorgehoben.

Search Unleashed: hervorgehobene Suchergebnisse & Textbox

Search Unleashed bringt bereits eine deutsche Übersetzung mit, sodass hier keine Nacharbeiten nötig sind. Nach der Installation kann das Plugin out-of-the-box benutzt werden, wenn man es nicht anpassen möchte und bspw. bestimmte Seiten oder Beiträge ausschließen möchte.
Unterstützt werden ebenfalls einige Operatoren wie das Wildcard-Sternchen (Beispielsuche wordpre*).

wpSearch

Die Opensource Suchmaschine Lucene wird von dem Plugin wpSearch benutzt, um die Suchergebnisse nach Relevanz auszugeben. Nach der Installation ist es möglich, die Kriterien zu verfeinern und dem Titel eines Beitrages, dem Inhalt, den verwendeten Tags oder Kommentaren eine höhere oder niedrigere Punktezahl zuzuordnen, nach denen dann die Relevanz der Suchergebnisse bestimmt wird.

wpSearch Einstellungen

wpSearch ist die perfekte Ergänzung zu Search Unleashed. Das Zusammenspiel beider Plugins ist problemlos. Damit wpSearch aber keine “Null-Ergebnisse” liefert, sollte man zwischendurch immer mal wieder den Suchindex über die Einstellungsseite neu erstellen.

Update 10.12.2009: wpSearch scheint nicht mehr mit aktuellen WordPress Versionen (hier 2.8.6) zu funktionieren. Stattdessen verwende und empfehle ich das Plugin Relevanssi.

Externe Lösungen: Google- oder Yahoo!-Suche einbinden

Ende 2007 testete ich kurz die Möglichkeit, die Yahoo! bzw. Google-Suche auf dieser Seite einzubinden. Ich entschied mich damals dagegen und auch heute sind meine Bedenken gegenüber der Datenkrake Google noch hoch genug. Ebenso möchte ich auf meiner Seitensuche keine Werbung sehen. Die Yahoo! Ergebnisse fand ich damals übrigens noch nicht einmal berauschend.

Such-Template verbessern

Auch die Ausgabe der Suchergebnisse kann leicht aufbereitet werden, um den Suchenden ein besseres Sucherlebnis zu bieten. Einige Tipps:

Suchbegriff ausgeben
Nach welchen Begriffen hatte ich nochmal gesucht? Mit diesem kleinen Code gibt man die gesuchten Begriffe aus:

<?php the_search_query() ?>

Suchfeld mit benutztem Suchbegriff
Warum nicht den Besuchern ein Suchschlitz anbieten, indem schon die benutzten Suchbegriffe eingetragen sind? So gehts:

    <form id="searchform" method="get" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
    <div>
        <input class="searchfield"  type="text" value=" <?php the_search_query(); ?> " name="s" id="s" />
        <input class="submit" type="submit" value="Suchen" title="Suchen" />
    </div>
    </form>

Navigation umbenennen
Standardmäßig kann man bei mehr als einer Seite mit Suchergebnissen weiterblättern. Aber die Bezeichnung dieser Links ist mit Ältere Beiträge bzw. Neuere Beiträge sehr missverständlich, wenn die Suchergebnisse nach Relevanz sortiert werden. Die Änderung ist einfach:

<div class="navigation">
	<div class="alignleft"><?php next_posts_link('&laquo; Weitere Suchergebnisse') ?></div>
	<div class="alignright"><?php previous_posts_link('Vorherige Suchergebnisse &raquo;') ?></div>
</div>

Kategorien oder Tagcloud ausgeben
Warum nicht alternative Navigationsmöglichkeiten ebenfalls anbieten? Je nachdem ob Kategorien oder Tags benutzt werden, können auch diese ausgegeben werden.

Kategorien ausgeben:

<?php wp_list_cats(); ?>

Tagcloud ausgeben:

<?php wp_tag_cloud(); ?>

Mit relativ einfachen Mitteln ist es also möglich, auch eine gute WordPress Suchfunktion seinen Besuchern zur Verfügung zu stellen. Die gewöhnliche WordPress Suche darf man m.E. einem Suchenden nicht zumuten, wenn man selber einmal in die Verlegenheit kam, auf einem Blog etwas zu suchen. Irgendwann hilft dann nur noch eine Google-Suche – schon etwas peinlich …

Was sind eure Erfahrungen mit der Suche auf WordPress Seiten?

Lies weiter!

Hier schreibt exklusiv für Dich

Marc Pentermann bloggt seit über zehn Jahren. Hier wird über technische, netzpolitische und sozialpolitische Themen mit dem Schwerpunkt Arbeit & Arbeitsmarkt geschrieben und Fotos veröffentlicht.