bg
APML-Filter

Wordpress mit eigener Suchseite und erweiterter Suche

by Gabriele 5. August 2009 09:04

Meine erste Aktion war die ausgiebe Suche nach einer solchen Lösung. Dabei stieß ich auf das Advanded Search-Plugin bei Zirona. Beispiel wie es aussieht.

Zwei (auffällig gewordene) Faktoren sind zu beachten, bevor mit dem Einbau begonnen wird:
A Die MySQL-Datenbank muss Fulltext-Index können, das ist weniger ein Versionsproblem (3.23.23) als eine Frage davon, dass MyISAM-Tabellen verwendet werden. Das hätte ich vorausgesetzt, wenn ich beim Nachvollziehen des Vorgangs für diesen Blogbeitrag nicht auf das Problem gestoßen wäre, dass AdvancedSearch bei InnoDB-Tabellen streikte. Zum Glück habe ich immer noch die eine oder andere Testinstallation in Reserve.
B Es wird ein Template search.php benötigt.

1. Schritt: Das Plugin downloaden (Windows: .zip-Archiv, auf Wordpress-Version achten), entpacken und via FTP ins Plugins-Verzeichnis hochladen.

2. Schritt: Plugin Advanced Search aktivieren (Adanced Search Lite wird für diese Variante nicht benötigt).

Advanced Search aktivieren

3. Schritt: Unter Plugins, Editor die Einstellungen von Adancedsearch/settings.php bearbeiten, wie in diesem Beispiel bzw. gewünscht (in diesem Fall geht es darum, das Formular auch oberhalb von Suchergebnissen darzustellen, daher macht es sich besser, wenn es schlank ist):

advances Search konfigurieren

Schritt 4: Im Administrationsbereich eine neue Seite Suche anlegen. Der einzige Text den sie bekommt ist <!--advancedsearch-->. Die eigenen Suchseite ist fertig.

Suchseite einrichten

Damit nach einer vergeblichen Suche nicht das Wordpress-Standardsuchformular das Ruder übernimmt, muss die Zeile

<?php if(function_exists('get_search_form')) get_search_form(); ?>

aus der search.php entfernt (oder ausmarkiert) und durch den Aufruf des neuen Formulars ersetzt werden

<p>
    <?php echo as_form('as'); ?>
</p>

Das Verbleiben des Formulars auch im Falle von Ergebnissen bewirkt der Aufruf nach

<?php if (have_posts()) : ?>

und vor der Überschrift Search Results.

Beispiel:

[...]
<?php if (have_posts()) : ?>
      <div class="Post">
        <div class="PostInner">
          <div class="PostContent">
            <p>
              <?php echo as_form('as'); ?>
            </p>     

              <h2>
              <?php _e( 'Search Results', 'textdomain' ); ?>
            </h2>

  [...]     
    <?php else : ?>
      <div class="Post">
        <div class="PostInner">
          <div class="PostContent">
            <h2 class="PostHeader">
              <?php _e( 'No posts found. Try a different search?', 'textdomain' ); ?>
            </h2>
            <p>
              <?php echo as_form('as'); ?>
            </p>

          </div>
        </div>
      </div>
    <?php endif; ?>
[...]

Kommentare sind geschlossen

Month List

BlogNetzWerke

Blog Verzeichnis und WebkatalogArtikelverzeichnis, Social Bookmarking, RSS-Verzeichnisfrisch gebloggtBlogPingR.de - Blog Ping-Dienst, BlogmonitorBlogtotalRSS Verzeichnisblogoscoop Blogverzeichnis - Blog Verzeichnis bloggerei.deAdd to Technorati FavoritesWeb Design Blogs - BlogCatalog Blog Directory