Ich habe eine Suche die in eine XML Datei durchsucht. Was mir jetzt noch fehlt ist die Integration in Wordpress.
Mein Problem ist, dass ich eine Suche brauche in der zwei Suchfelder ausgefüllt werden müssen. Wordpress bietet aber scheinbar nur ein $s an.
Ich kann natürlich auch ein form action auf ein php file von mir machen und die Suchparameter mit GET übergeben. Allerdings fügt sich die Ergebnisseite dann nicht mehr in Wordpress und das Template ein.
Wie kann ich die Suche in Wordpress also erweitern?
Wie kann man die Suche in Wordpress um zwei gleichzeitige Suchfelder erweitern
-
-
- Gerade eben
- 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)
-
PHP
Alles anzeigen<?php require ('wp-blog-header.php'); get_header (); ?> <div id="container"> <div id="content"> <!-- Ausgabe der Suchergebnisse --> </div> <div id="aufderseite"> <!-- menu --> <?php get_sidebar (); ?> </div> </div> <!-- #container --> <?php get_footer (); ?>Wenn Du das PHP File so aufbaust, dann fügt es sich harmonisch in das Design Deiner Seite ein. Es muss aber nicht GET sein. Du kannst auch POST benutzen.
-
@ entwickler,
kann mich ja irren, nur weil ich es gerade probiert habe (ohne Formular), wenn Du die so einfügst, dann müsstest Du die außerhalb vom Theme auf der ersten Ebene von WP mit ablegen oder nicht?
Und wenn Du die ins Theme mit ablegen möchtest, fügst Du die dann nicht mit Template Name hinzu und gibst der dann übers Dashboard einen Beitragsnamen wie /Suche-XML/?PHP
Alles anzeigen<?php /** * Template Name: Testseite */ get_header(); ?> <section id="primary" class="site-content"> <div id="content" role="main"> <header class="page-header"> <h1 class="page-title">Testseite</h1> </header> <article id="post-0"> <div class="entry-content"> <p>Was ist hier?</p> <?php /* Baue Script für Suche-XML ein. */ ?> </div><!-- .entry-content --> </article><!-- #post-0 --> </div><!-- #content --> </section><!-- #primary --> <?php get_sidebar(); ?> <?php get_footer(); ?>@ seka,
wofür benötigst Du $s, wenn Du ein Formular mit eigenem Input für GET oder POST verwendest und dann das Formular an /Suche-XML/ (oder wie immer Du die Seite benennen möchtest) adressierst?
Beispiele für einfache Formulare: http://www.coder-welten.com/wp-funktionen-…l-und-site_url/
-
Hallo melewo, ja stimmt. So wie ich es geschrieben habe, liegt die Datei im gleichen Pfad wie wp.
Den Source Code habe ich in zwei Installationen laufen. Hier ist er nur vereinfacht. Das Formular das dorthin POSTet habe ich einfach im Wordpress Editor eingetippt.
Die zweite Frage von Dir kann ich mangels Erfahrung nicht beantworten.
-
a) Wenn Du eine eigene Suchroutine hast, musst Du sie auch entsprechend in WordPress einbinden. Als Ausgangsbasis kannst Du den Artikel verwenden: http://codex.wordpress.org/Creating_a_Search_Page - hier stehen einige Infos, die Du berücksichtigen solltest.
b) Die WordPress-Suche hat _nichts_ mit Deiner Suchfunktion zu tun. Die ist beschränkt auf die Datenbank von WordPress. Zwar kann man das sicherlich anpassen, sodass auch Dein XML-File bedient werden könnte, aber das sprengt ganz bestimmt den Rahmen.
c) Erstelle Dir eine search-xml.php im Themeordner und binde diese Vorlage (!) entsprechend im Theme ein. Weitere Infos dazu: http://codex.wordpress.org/Page_Templates…m_Page_TemplateWenn Du bspw. das Suchformular global anzeigen möchtest, solltest Du dieses im Rahmen eines Plugins umsetzen. Eine Anzeige kann dann per Shortcode oder über ein Widget erfolgen.
Alternative: Einbinden des PHP-Skripts als iFrame. Machen nur Leute ohne große Ansprüche (und ich kanns net leiden). ;)
-
Vielen Dank für eure Antworten, ich werde sie jetzt gleich mal durcharbeiten.
@Melewo:
Wenn ich nicht $s verwende, verhält sich die Suche anders als mit. Ich habe auch immer wieder das Problem, dass er statt dann meiner Suche einfach das Blog durchsucht. So richtig weiß ich immer noch nicht wo die Suche abläuft. Das search.php ist ja nur zur Anzeige, das hab ich schon angepasst und das loop-blog.php. Da die WP-Suche nicht gebracht wird ist es auch ok, dass sie überschrieben wird. Aber etwas eigenes wäre natürlich schon besser, gerade wenn das Template (Cherry) Updates bekommt. -
Wenn ich nicht $s verwende, verhält sich die Suche anders als mit.
Kann nicht sein, da $s nichts mit Deinem Formular zu tun hat und Du nur die Werte der Parameter von Deinem Formular für die Suche in der XML verwendest. Die search.php hat ebenfalls nichts mit Deiner Suche zu tun. Du richtest Dir dafür eine neue Seite ein.Das search.php ist ja nur zur Anzeige, das hab ich schon angepasst und das loop-blog.php.
Noch einmal, diese Datei hat nichts mit Deiner Suche in der XML zu tun und muss deshalb auch nicht verändert werden.
-
Super!DANKE!
LG -
Erster Post als Antwort (mit Link) auf eine 4 Jahre alte Anfrage, zweiter Post (Super!) nichtssagend. Kannst Du nicht besser spammen?
-
Bin jetzt erst dazu gekommen das mal auszuprobieren. Ich hänge aber auch schon, da ich nicht weiß, wie ich die neue Suche im Form ansprechen kann.
-
-
Oh man, da war ich jetzt aber aufm Schlauch gestanden. Einfach den Dateinamen. Dachte irgend eine WP interne Art per Template namen, den man in den Header reinschreibt.
Achso und ich verwende zur Sicherung:
<?php echo wp_specialchars($o, 1); ?> -
Er findet die php nicht. Hab sie sowohl in den root des parent themes als auch ins child theme gepackt.
-
Wenn Du die Datei in das Theme gepackt hast, dann hast Du nicht meinen Rat befolgt. Ich empfahl als Ort das Wurzelverzeichnis von wordpress. Siehe oben. Aber vielleicht helfen die Kollegen dann weiter.
-
Ah sorry, hatte ich verwechselt :)
Du empfiehlst es wegen möglichen Template Updates? Aktuell bin ich damit nämlich noch nicht zufrieden, dass dann meine Anpassungen verloren gehen.Muss mich dringend noch mit Childthemes auseinandersetzen.
-
Die von mir vorgeschlagene Lösung funktioniert sogar beim Wechseln des Themes.
-
Im Theme adressierst Du ebenfalls, nur nicht an die Datei, sondern an die Seite. Wenn Du die thesearch.php oder page-meinesuche.php als /meine-suche/ angelegt hast, dann gehört auch /meine-suche/ ins Attribut action.
-
entwickler:
Die Suche mit deiner Lösung funktioniert, nur zerhauts das Layout mit:PHP
Alles anzeigen<?php require ('wp-blog-header.php'); get_header (); ?> <div id="container"> <div id="content"> Meine Ausgabe </div> </div> <!-- #container --> <?php get_footer (); ?>Melewo:
Nur aus Interesse, wie müsste dann das Form aussehen? So: -
Achso und ich verwende zur Sicherung:
<?php echo wp_specialchars($o, 1); ?>
Baue Dir keine Sicherheitslecks ein. So etwas ist gut, um zusätzlich die Ausgabe abzusichern, jedoch filtert man gleich den Eingang, zum Beispiel mit preg_replace und einer entsprechenden Zeichenklasse. Außerdem:ZitatThis function is deprecated as of WordPress 2.8.0.
http://codex.wordpress.org/Function_Reference/wp_specialchars
Heißt Deine Seite ... .php oder endet nur die Datei mit .php?
-
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!