Wie man die miserable WordPress-Suche verbessert

Eine der Schwach­stel­len des global belieb­testen Content-Manage­ment-Systems ist die unter­ent­wickel­te Such­funk­tion. Anhand meiner Artikel­daten­bank führe ich vor, wie sich dieses Manko behe­ben lässt.

WordPress ist nicht nur ein Content Management System, sondern auch ein Tummelplatz für Nerd-mässig veranlagte Spielkinder. Und es ist eine Software, die man auf vielfältige Weise zweckentfremden kann.

Eine solche Zweckentfremdung beschreibe ich im Beitrag Trick 77 für historische Datensammlungen: Es geht darin um mein Projekt, meine seit 1981 in Microsoft Access geführte Artikeldatenbank ins Netz zu verfrachten. Das Resultat der Bemühungen ist unter  archiv.matthiasschuessler.ch zu finden.

Diese Lösung erfüllt ihren Zweck gut: Ich kann meinen gesamten Artikelbestand via Browser durchsuchen, und zwar auf unkomplizierte Weise: Ich habe in Firefox ein Schlüsselwort für die Suche eingerichtet. Das lautet a, sodass ich mit a firefox alle meine Artikel finde, die jemals über Firefox geschrieben habe.

Mit Google das Gesamtwerk durchforsten

Um auch meine Blogs und den Nerdfunk miteinzubeziehen, starte ich eine Google-Suche und füge via Phraseexpress den Stehsatz ein, der via Site-Parameter eine Einschränkung auf meine Sites vornimmt. Also zum Beispiel so:

firefox site:clickomania.ch OR site:mrclicko.de OR site:archiv.matthiasschuessler.ch OR site:nerdfunk.ch

Das ist schon sehr schick.

Zurück zu WordPress und der Verwendung des CMS als Nachschlagewerk: Gegenüber einer klassischen Datenbank gibt es natürlich Nachteile. Die grösste ist die Suchfunktion: In einer Datenbank kann man gezielt suchen; die WordPress-Suche ihrerseits ist nicht das Gelbe vom Ei.

Der grösste Nachteil besteht darin, dass man die Suche nicht vernünftig einschränken kann. Ich habe das Medium, in dem ein Artikel erschienen ist, als Kategorie zugewiesen. Da wäre es wünschenswert, wenn ich die Suche nach Kategorie, d.h. nach Medium limitieren könnte. Nett wäre auch eine zeitliche Vorgabe und die Möglichkeit, nur im Titel zu suchen.

Aber WordPress wäre nicht WordPress, wenn sich dieses Problem nicht über ein Plugin beseitigen liesse. Und wie gewohnt, ist das Aufgebot so gross, dass man einige Kandidaten durchprobiert, um denjenigen zu finden, der die Aufgabe am besten erfüllt.

Das Plugin der Stunde heisst Search & Filter

Nach einigem Suchen bin ich bei Search & Filter gelandet: Dieses Plugin erfüllt meinen Hauptzweck. Es schränkt die Resultate nach Kategorie, d.h. nach Medium ein. Als Bonus ist auch eine Filterung nach Datum möglich.

Voilà: Die Artikel zu Firefox, die 2005 bis 2007 im «Tagesanzeiger» erschienen sind.

Die Installation ist keine Hexerei: Man installiert das Plugin und aktiviert es, wie man es sich gewohnt ist. Dann begibt man sich im Backend zu Design > Widgets und platziert ein Feld Individuelles HTML an der Stelle, an der man das Suchfeld haben möchte.

In dem Feld trägt man nun einen Code ein, der angibt, mit welchen Eigenschaften das Suchfeld ausgestattet sein soll. Die Dokumentation der Codes findet sich hier.

Suche nach Kategorie und Datum

Die simpelste Variante zeigt ein Suchfeld und eine Auswahlliste für die Kategorie:

[searchandfilter fields="search,category"]

Um auch eine Einschränkung nach Datum vornehmen zu können, verwendet man diesen Code:

[searchandfilter fields="search,category,post_date"]

Nachteil: Es berücksichtigt nur ein exaktes Datum, was für meine Zwecke nichts bringt – denn wenn ich mich noch genau erinnern würde, wann ein Artikel erschienen ist, wüsste ich wohl auch noch, was darin geschrieben steht. Darum möchte ich natürlich einen Datumsbereich angeben können. Aber auch das lässt sich lösen, und zwar mit diesem Code:

[searchandfilter fields="search,category,post_date" types=",,daterange" headings="Suche,Medium,Datum"]

Dieses Beispiel zeigt im Wesentlichen auch, wie die Syntax funktioniert: Über fields gibt man an, welche Felder vorhanden sein müssen. Bei types spezifiziert man die Art des Feldes. Da ich nur beim Datumsfeld definieren muss, dass ein Bereich angezeigt wird, braucht es zwei Kommas vor dem Parameter daterange, damit der sich auf das dritte Feld bezieht. Mit headings definiere ich die Beschriftungen der drei Felder.

Das wars – für meine Zwecke. Mit diesen Feldern komme ich fürs Erste gut über die Runden.

Auch individuelle Datenbankfelder sind erschliessbar

Trotzdem der Hinweis, dass das Plugin noch viel mehr Möglichkeiten bereithält: Man kann auch die Tags miteinbeziehen, wobei man eine Vorgabe machen kann, welche Tags in der Suche zur Verfügung stehen.

Es gibt auch eine Pro-Variante – und die erlaubt es, auch die Custom Fields für die Suche zu verwenden. WordPress ermöglicht es, eigene Datenfelder anzulegen, in denen man zusätzliche Informationen ablegt. Wenn man beispielsweise eine Website mit Filmkritiken führt, dann wäre ein individuelles Datenbankfeld für die Bewertung sinnvoll.

Dieses Bewertungsfeld müsste natürlich unbedingt auch in der Suchfunktion zur Verfügung stehen. Das ist mit dieser Pro-Variante möglich. Sie kostet zwanzig US-Dollar für eine Site; die Developer-Variante schlägt mit 75 US-Dollar zu Buch.

Wie im Eingangs-Beitrag erwähnt, habe ich einige Felder aus der Access-Datenbank als custom fields importiert. Mit Search & Filter wäre es möglich, diese in der Suche zu berücksichtigen. Falls sich abzeichnet, dass das für mich sinnvoll sein könnte, werde ich mir gern die Pro-Variante leisten.

Beitragsbild: Wenn schon suchen, dann am richtigen Ort (Evgeni Tcherkasski, Unsplash-Lizenz).

Kommentar verfassen