Suche und search.php

  • Moin.

    In meiner single.php wird die Suche included. Die searchform.php sah so aus:

    PHP
    <form method="get" action="<?php bloginfo('url'); ?>/" id="searchform">
     <fieldset>
      <p><label for="suchen">Suchen-Eingabe</label>
      <input type="text" name="suchen" id="suchen" size="20" alt="Suche-Eingabe" value="<?php the_search_query(); ?>" />
      </p>
      <p><input type="submit" value="Suchen" id="submitbutton" /></p>
     </fieldset>					
    </form>

    Das führte dazu, dass das Suchergebnis auf der index.php angezeigt wird. Nun habe ich aber extra die search.php dem Design angepasst, also möchte ich auch die Ausgabe dort haben. Dazu habe ich die Formular-Aktion geändert:

    PHP
    <form method="get" action="<?php bloginfo('template_directory'); ?>/search.php" id="searchform">
     (...)
    </form>

    Dachte ich mir mal so. Allerdings führt das dazu, dass ich beim Suchen folgende Fehlermeldung erhalte:

    Zitat

    Fatal error: Call to undefined function: get_header() in /www/pfad/wp-content/themes/themename/search.php on line 1

    Wie bekomme ich die Suche auf die search.php umgeleitet?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Die action solltest du nicht verändern, da die search.php automatisch verwendet wird, wenn sie vorhanden ist.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Das habe ich auch schon irgendwo gelesen. Aber

    PHP
    action="<?php bloginfo('url'); ?>/"

    springt trotz vorhandener search.php automatisch auf die Startseite. :-( Keine Ahnung, wieso. :confused:



    ist die wirklich im richtigen Theme ordner?

    lg

  • Okay. Lösung gefunden (glaube ich - laufen tut es jedenfalls... :-) ). Vorher:

    HTML
    <input type="text" name="suchen" id="suchen" size="20" value="<?php the_search_query(); ?>" />

    Und jetzt schaut es so aus:

    HTML
    <input type="text" name="s" id="s" size="20" value="<?php the_search_query(); ?>" />

    Name und ID des Input-Feldes müssen anscheinend unbedingt "s" als Wert haben. Ein aussagekräftigeres "suchen" führt zur fehlerhaften "Umleitung" auf die index.php. *tataaa*

  • Die ID ist WP wurscht, aber das name-Attribut wird für den Übergabeparameter verwendet, der dann intern die Suche auslöst. Bei den normalen Blogeinträgen würdest du ja auch nicht auf die Idee kommen, aus dem ?p= ein ?blogbeitrag= zu machen, oder? ;-)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!