Frage zu query_posts

  • Guten Morgen zusammen,

    ich versuche Posts anzuzeigen, die einen bestimmten "Suchbegriff" im Titel enthalten. Ich habe dazu folgenden Code erstellt:

    Leider wird kein Ergebnis angezeigt. Kann mir jemand weiterhelfen?

    Vielen Dank und Gruß,
    Frank

    • 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

  • Wie übergibst du denn den Suchbegriff? Über die URL?

    PHP
    <?php query_posts('pagename=' . strtolower( $_GET['suchbegriff'] )); ?>

    Allerdings wäre es für deine Zwecke deutlich pragmatischer, wenn du dir den Code in der search.php deines Themes anschaust, denn das macht bereits genau das was du möchtest. :)

    wpseek.com - Die WordPress-Code-Suchmaschine

    Einmal editiert, zuletzt von Alphawolf (8. Dezember 2008 um 10:19)

  • Das wird so nicht funktionieren fürchte ich:

    Zitat von Codex

    name=first-post - use the Post Slug to show the first post
    pagename=about - note that this is not the page's title, but the page's path


    Template Tags/query posts WordPress Codex

    Eine Lösung für dein Problem hab ich aber auf die Schnelle auch nicht. Schau dir vielleicht mal die diversen "Related Posts"-Plugins an, wie es dort gelöst wird:
    WordPress › related Tags WordPress Plugins

    Oder die Suchfunktion wie von Alpha angesprochen.

  • Wie übergibst du denn den Suchbegriff? Über die URL?

    PHP
    <?php query_posts('pagename=' . strtolower( $_GET['suchbegriff'] )); ?>

    Allerdings wäre es für deine Zwecke deutlich pragmatischer, wenn du dir den Code in der search.php deines Themes anschaust, denn das macht bereits genau das was du möchtest. :)

    Der Suchbegriff ist quasi statisch. Auf einer Seite (eigenes Template) soll eine Auswahl von Beiträgen angezeigt werden. Mit einem bestimmten Begriff im Titel.

  • Auch wenn es zu Beginn ggf. mehr Aufwand bedeuten wird, die Beiträge entsprechend zu taggen, aber dafür würde ich Tags benutzen. Denn genau dafür sind sie da. :)

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Auch wenn es zu Beginn ggf. mehr Aufwand bedeuten wird, die Beiträge entsprechend zu taggen, aber dafür würde ich Tags benutzen. Denn genau dafür sind sie da. :)

    Im Prinzip gebe ich Dir natürlich vollkommen Recht. Aber die Situation ist so, dass die Beiträge aus einem anderen System von uns importiert werden und leider keine entsprechenden Tags besitzen. :|

  • Denkbar schlechte Voraussetzungen. :)

    Versuch mal folgendes (ungetestet):

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Denkbar schlechte Voraussetzungen. :)

    Versuch mal folgendes (ungetestet):


    Gerade mal getestet. Das

    PHP
    $vorhanden = strpos( get_the_content(), $suchwort );

    liefert leider kein Ergebnis. Mit echo erhalte ich keine Ausgabe.

    Danke für Deine Mühen!

  • get_the_content() liefert den Artikeltext zurück, nimm mal besser get_the_title(). Und das:

    Code
    [COLOR="Red"]$vorhanden[/COLOR] = strpos( get_the_content(), $suchwort );
     if( [COLOR="#ff0000"]$pos [/COLOR]=== true ) {


    will sich mir auch nicht ganz erschließn, ich denke Alpha meinte sowas:

    PHP
    if( $vorhanden > 0 ) {


    oder

    PHP
    if( $vorhanden !== false ) {

    http://de3.php.net/strpos

  • Ergebnis...

    So, ich war gerade auch auf dem richtigen Weg. Vielen Dank an Euch beiden!

    Hier das Ergebnis, falls es jemand nochmal braucht:

    Das get_the_content() kann durch get_the_title() ausgetauchst werden...

Jetzt mitmachen!

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