Sascha Postner macht Jagd auf Kommunikation, Webstandards und Public Relations

 

Archiv für die Kategorie „wordpress“

Wordpress Suche verbessern

Sonntag, 31. Januar 2010

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('&lt;&lt; Seite') ?>
      < ?php next_posts_link('Seite &gt;&gt;') ?>

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!

Popularity: 29% [?]

WordPress Email Notification Plugin Theme

Montag, 17. April 2006

Deutsche Version

(There is also an English version of this article)

Ich nutze das Wordpress Email Notification Plugin von Brian Groce für diese Seite, damit auch Besucher, die kein RSS nutzen (wollen) auf dem Laufenden bleiben können.
Das Plugin versendet an alle angemeldeten Adressen eine Benachrichtigung wenn ein neuer Artikel gepostet wird.

Dummerweise hat Brian noch keine Zeit gehabt das ganz so zu bauen, dass die Meldungen im Theme-Layout eingebunden werden. Derzeit werden darum Fehler, Bestätigungen und Abmeldungen auf einer einfachen weißen Seite ausgegeben, der sogar wichtige tags fehlen.
Schön wäre natürlich wenn die Meldungen im Theme-Layout auftauchen würden. Anstatt dies geht ganz einfach indem man header, footer und sidebar des Themes in die indexdatei einbindet. Dazu ersetzt man in der Datei ./maillist/index.php:

 include ("wpemn_config.php"); 

durch den folgenden Code:

include ("wp-config.php");
include ("wp-content/themes/{euer-theme}/header.php");
include ("wpemn_config.php");

zusätzlich sollte man dann noch am Ende der Datei folgenden Code einfügen:

< ?php
include ("wp-content/themes/{euer-theme}/sidebar.php");
include ("wp-content/themes/{euer-theme}/footer.php"); ?>

Schon wird das Theme auch für die Meldungen des Email notifier Plugins genutzt. So braucht man nicht puren HTML-Code in diese Datei einfügen und diesen jedesmal händisch ändern, wenn sich etwas am header verändert.

Zu erwähnen bleibt, dass man noch {euer-theme} gegen den Foldernamen (wer hätte es gedacht) Eures Themes austauschen muss. Je nach Layout kann es auch sein, dass Ihr gar nicht die Sidebar einbauen wollt oder diese in den oberen Teil gehört, aber das bekommt Ihr dann sicher selber hin. Gegen Fragen hab ich aber auch nix. ;-)
Kennt jemand vielleicht die PHP Abfrage für den relativen Pfad zum aktuellen Theme? Dann könnte man das auch weich Coden und bei einem Themewechsel wäre alles gut ohne hier die Zeilen ändern zu müssen.

English Version

(deutsche Version dieses Artikels)

On this page I use the Wordpress Email Notification Plugin by Brian Groce. It can be used to give users who do not have or do not want to use RSS the oportunity to stay informed. Fot that matter it sends information to all subscribers if a new article is posted on the blog via email.

The only bad thing about the Plugin is the fact, that Brian did not have the time to make it using the Frontend Theme of Wordpress yet. Today all the output is viewed on a plain white page which even lags some important basic tags like head or body.
It would be comfortable if the Plugin would use the current Theme layout. But instead of just writing plain HTML into the ./maillist/index.php file you can also include the important files via php. To do that just exchange the line:

 include ("wpemn_config.php"); 

with the following code:

include ("wp-config.php");
include ("wp-content/themes/{your-theme}/header.php");
include ("wpemn_config.php");

At the end of the file just include this:

< ?php
include ("wp-content/themes/{your-theme}/sidebar.php");
include ("wp-content/themes/{your-theme}/footer.php"); ?>

Know you just have to change {your-theme} to the folder name of (surprise!) the theme you use. Maybe you want to kick the sidebar here or you want it to be above the plugin, but that is something you can do from here i guess.
If not: I am happy to answer questions ;-) .

Last but not least: Does somebody know how to use the relative path to the current Theme in worpress via PHP? If one would use that, a theme change would not break the design! In the moment you have to change this code if you use a different theme after some time. And theme switcher can not be used at all…

Popularity: 25% [?]

Diese Seite hat Beta Status!
Mein XING-Profil. Mein Linkedin-Profil. Mein PGP-Schlüssel. Meine Amazon Wunschliste. Mein Twitter Account.
Volltextsuche Im Blog nach