Wer sich mit der integrierten Suche des Blogsystems WordPress beschäftigt merkt schnell: Opimierung tut Not. Es fängt bereits damit an, dass die Suchergebnisse immer chronologisch sortiert werden und nicht nach Relevanz angezeigt werden können. Auch die darüber hinaus werden die Suchergebnisse eher unpraktisch aufbereitet. Mit einigen wenigen Handgriffen und der Installation einiger Plugins läßt sich dies aber weitestgehend ändern.
Verbesserungen am Template
Ausgab der Suchbegriffe und der Anzahl der Suchtreffer in den Suchergebnissen
Zunächst ist es eine gute Idee den User noch einmal daran “zu erinnern” nach was er eigentlich gesucht hat. Ich mache das am liebsten direkt oben im Titel des Template für die Suchergebnisse (search.php). Dabei lässt sich auch prima die Anzahl der Suchtreffer ausgeben:
<h2>Es gibt <?php echo $wp_query->found_posts; ?> Suchergebnisse für "<?php the_search_query() ?>"</h2>
Mit dem search_query kann man auch schön nochmal ein bereits vorgefülltes Suchfeld anbieten:
<form id="bigsearchform" method="get" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<input class="searchfield" type="text" value="<?php the_search_query(); ?>" name="s" id="q" />
<input class="submit" type="submit" value="Suchen" title="Suchen" />
</form>
Navigation der Suchtrefferseiten ändern
In vielen Templates wird bei der Navigation zwischen den Suchtrefferseiten leider der Text “Ältere Beiträge” bzw. “Neuere Beiträge” angezeigt. Mit diesem Code kann den Text verändern:
< ?php previous_posts_link('<< Seite') ?>
< ?php next_posts_link('Seite >>') ?>
Durchgängige Nummerierung der Suchtreffer
Wenn man die Suchtreffer durchgängig nummerieren möchte ist es am einfachsten dies über eine geordnete Liste zu erledigen. Dummerweise fängt WordPress bei jeder Seite wieder an von vorne mit 1 zu zählen. Mit dem folgenden Code-Snippet läßt sich dies wunderbar anpassen.
<?php
if( isset($paged) && ( intval($paged) > 1 ) ) {
echo '<ol start="' . ( ($paged - 1) * $posts_per_page + 1 ) . '">';
} else {
echo '</ol><ol>';
} ?>
<?php while (have_posts()) : the_post(); ?>
<li class="search-result">
<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<!-- der Relevanssi Textauszug (s.u.) -->
<?php if (function_exists('relevanssi_the_excerpt')) { relevanssi_the_excerpt(); }; ?>
</li>
<?php endwhile; ?>
</ol>
Diese und einige andere Anregungen stammen aus dem Blog von Daniel Jäger.
Plugins
Search Suggest (Vorschläge für alternative Suchbegriffe)
Das Plugin Search Suggest von Joost de Valk ermöglicht es alternative Suchbegriffe vorzuschlagen. Dieses Feature kennt man unter anderem von Google und anderen Suchmaschinen. So lassen sich Tippfehler oder ähnliche Begriffe abfangen. Angezeigt wird in den Suchergebnissen dann “Meinten Sie vielleicht:” gefolgt von alternativen Suchbegriffen.
Die Vorschläge werden über die Yahoo-API generiert. Ebenfalls möglich wird so übrigens ähnliche Suchbegriffe in die Suchtreffer einzublenden!
Relevanssi (Verbesserung der Suchtreffer und der Relevanz)
Die Suchergebnisse der WordPresssuche sind mit verlaub etwas dürftig. Verbessern lasseh Sie sich z.B. mit dem Plugin Relevanssi. Unter anderem lassen sich die Treffer so nach Relevanz ausgeben (mit Relevanzboost für Überschriften oder Tags) und die Suche auf bestimmte Kategorien oder Tags beschränken. Außerdem läßt sich zu jedem Treffer ein Textauszug anzeigen, in dem die Suchbegriffe hervorgehoben werden können.
Außerdem bietet das Plugin die Möglichkeit bestimmte “Blockwörter” aus dem Suchindex zu nehmen. Indexiert werden dabei auf Wunsch übrigens auch Kommentare und Pingbacks. Falls man möchte kann man durch den Index auch eine fuzzy-Logik-Suche aktivieren, wahlweise auch nur falls keine Treffer gefunden werden.
Als Schmakerl kann man sich auch ein Log der Suchanfragen an die Seite ausgeben lassen, um beispielsweise die eigenen Inhalte an die Besucher anzupassen.
Kau-Boy’s AutoCompleter
Das Plugin AutoCompleter von Bernhard Kau ermöglicht eine Live-Search wie man sie auch von Google kennt. Im Gegensatz zu anderen Plugins, die “nur” vergebene Tags oder Kategorien vorschlagen sucht Kau-Boy’s AutoCompleter im Hintergrund die Inhalte des WordPress Blogs ab und bietet sofort reale Suchtreffer an!
Angezeigt wird auf Wunsch sogar ein kurzer Textauszug rund um den Suchtreffer. Auch wenn es sicherlich noch einige Verbesserungsmöglichkeiten gibt (z.B. ist es nicht umbedingt sinnvoll sofort den ersten Treffer zu selektieren) ist es ein spitzen Plugin. Außerdem sollte noch der tolle Einsatz des Autoren betont werden und dessen schnelle Support!















Hi Sascha, in Deinem sehr gut aufgearbeitem Beitrag sind sogar noch ein paar Tipps für mich dabei
Danke dafür! Liebe Grüße aus der weißen Hauptstadt!
Freut mich!
[...] Dieser Eintrag wurde auf Twitter von Chris D und Sascha Postner, Sascha Postner erwähnt. Sascha Postner sagte: Neuer Blogeintrag: WordPress Suche verbessern http://bit.ly/9cQpDc [...]
Heyy, Beitrag empfinde ich als durchaus hilfreich. Werde wohl einige Tipps verwenden können, aber:
Wenn ich bei meiner Suche nach Wörtern etc. suche, dann gibt er mir immer nur drei Artikel aus, obwohl es zu den Suchwörter deutlich mehr Treffer geben müsste. Gibt es da nen Trick weswegen das so ist. Kann man die Suchtrefferanzahl hochsetzen also erzwingen.
Für Hilfe wäre ichs ehr dankbar.
mfg
Da gibt es natürlich einige Möglichkeiten. Hast du vielleicht in den WordPresseinstellungen die Anicht auf 3 Posts pro Seite begrenzt und die Navigation aus dem Seitentemplate der Suchergebnisse rausgenommen?
Zumindest sieht das auf deinem Blog so aus!
Falls es das nicht ist müsste man sich mal den Templatecode ansehen. LG Sascha
Du hast recht. Also zumindest was die Beitragsanzahl auf dem Blog betrifft. Jedoch habe ich die angesprochene Navigation irgendwie nicht verändert. Seit dem Update 3.1 spielt die Suche jedoch verrückt. Vorher ging es einwandfrei…
Wie baue ich die Navigation wieder ein? Und vorallem wo?
mfg
Wirf mal einen Blick in dein Template. Da wird es eine Datei für die Suchergebnisse geben. Dort kannst du das “wieder” aktivieren bzw. etwas entsprechendes einbauen. Im Zweifel hilft ein Blick in die gleiche Datei bei einem Standardtemplate wie “twentyten” oder so.
Gruß Sascha
[...] ich einige hilfreiche Snippets gefunden, die man für die Standard-Suche einsetzen kann. Im Artikel WordPress Suche verbessern finden sich Snippets zur Ausgabe von durchnummerierten [...]