Kann man WP Suchergebnis filtern?

  • Hy Leute,

    Ist es möglich das Suchergebnis der Wordpress Suche zu Filtern?
    Beispiels weise über den "Schlüssel:Wert" und dann irrgendiwe if (the_meta()=1) {...} usw..

    Oder gibt es irrgend eine andere vieleicht sogar einfachere Lösung?

    Gruss Ben

    • 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

  • Bin ich mit meiner Idee auf dem Richtigen Weg? Zur Zeit sieht das ganze so aus in der Search.php.

    Wie kann ich jetzt diese Abfrage machen? Ich nehme an das ich das "the_excerpt();" Tag irrgenwie behandeln muss.

    PHP
    <?php IF (der Schlüssel des "the_excerpt();" = 1)
         { echo the_excerpt(); }
     ?>
  • Habe kurz die Anleitung studiert. Bin zu folgendem Punkt gekommen:

    PHP
    <?php echo $sprache = get_post_meta($post->ID, 'lang', true); ?>

    Nun kann ich mir ausgeben lassen welche Sprache die Seite hat.

    Jetzt weiss ich aber noch nicht wie ich das mit dem "<?php the_excerpt(); ?>" zuammenbringe.

    Hast du mir evt eine Idee wie ich das umsetzten könnte?

  • In dem du das ganze in eine If-Anweisung packst wie du es oben ja schon vorhattest:

    PHP
    <?php 
    $sprache = get_post_meta($post->ID, 'lang', true);
    if ($sprache="aramäisch") {
    the_excerpt(); 
    }
     ?>
  • Das haben ich schon versucht auf diese Weise.

    ich habe einigen Seiten den Schlüssel: lang und den Wert: de gegeben.
    den anderen habe ich den Wert: fr gegeben. Er zeigt mir aber bei den Suchresultaten immer alle an, nicht nur die Seiten mit dem Wert de.

    PHP
    <?php 
          $sprache = get_post_meta($post->ID, 'lang', true);
         if ($sprache="de") {
                the_excerpt(); 
                }
    ?>

    welche ID nimmt er mit dem $post->ID? Die id der Seite die in den Suchresultaten angezeigt wird oder die ID der Suchresultatseite?

    Was könnte da falsch sein?

  • Yes, jetzt klapts!! Danke..

    Er zeigt mir jetzt nur die "de" Seiten an. Das problem ist jetzt nur noch das mir das Ergebniss auf mehreren Seitne präsentiert wird. Dabei ist die erste leer. Dies gibt dem benutzer das gefühl dass keine Resultate vorhanden sind.

    Wie kann ich machen dass mir die Suchresultate nur auf einer Seite angezeigt werden?

  • Nun habe ich noch das letzte Problem entdeckt.

    Ich muss von irrgend wo her merken welche sprach zur Zeit gerade verwendet wird. Um dies unterscheiden arbeite ich mit drei verschiedenen Templates -> de fr und en.

    Ist es möglich drei verschiedene search.php zu benützen?
    z.B. search_de, search_fr und search_en.

    Wie spreche ich diese dann an?

    Bei mir sieht der Code zur Zeit wie folgt aus um in die search.php zu springen

    PHP
    <div id="suchen">
        <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
            <input type="text" value="<?php the_search_query(); ?>" name="s" id="eingabefeld" />
            <input name="image" type="image"  value="Search"  src="<?php bloginfo('stylesheet_directory'); ?>/images/go.jpg" />
        </form>
    </div>
  • Ich muss von irrgend wo her merken welche sprach zur Zeit gerade verwendet wird. Um dies unterscheiden arbeite ich mit drei verschiedenen Templates -> de fr und en.


    Wie übergibst du diese an WP? Wenn das geklärt ist, ist die Einbindung des korrekten Templates kein Problem mehr:

    search.php:

    PHP
    <?php
    switch ( $lang ) {
      case 'de' : require 'search_de.php'; break;
      case 'en' : require 'search_en.php'; break;
      case 'fr' : require 'search_fr.php'; break;
      default : die('Falsche Sprache!');
    }
    ?>
    Zitat


    Bei mir sieht der Code zur Zeit wie folgt aus um in die search.php zu springen

    PHP
    <div id="suchen">
        <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
            <input type="text" value="<?php the_search_query(); ?>" name="s" id="eingabefeld" />
            <input name="image" type="image"  value="Search"  src="<?php bloginfo('stylesheet_directory'); ?>/images/go.jpg" />
        </form>
    </div>


    Abgesehen davon, dass der Code nicht dafür da ist "in die search.php zu springen"... ;-) Du kannst hier die Sprache bspw. als hidden-Field übergeben:

    HTML
    <input type="hidden" name="lang" value="de" />
  • thank's für deinen prompte Antwort..

    Versteh ich das richtig mit dem

    [COLOR=#ff8000]<input type=[COLOR=#0000ff]"hidden"[/COLOR] name=[COLOR=#0000ff]"lang"[/COLOR] value=[COLOR=#0000ff]"de"[/COLOR] />[/COLOR]
    übergeb ich dem search.php file den schlüssel "lang" und den Wert "de"

    Im Search.php steht dann nur die Abfrage

    [LEFT] [COLOR=#000000] [COLOR=#0000cc]<?php
    [/COLOR][COLOR=#006600]switch ( [/COLOR][COLOR=#0000cc]$lang [/COLOR][COLOR=#006600]) {
    case [/COLOR][COLOR=#cc0000]'de' [/COLOR][COLOR=#006600]: require [/COLOR][COLOR=#cc0000]'search_de.php'[/COLOR][COLOR=#006600]; break;
    case [/COLOR][COLOR=#cc0000]'en' [/COLOR][COLOR=#006600]: require [/COLOR][COLOR=#cc0000]'search_en.php'[/COLOR][COLOR=#006600]; break;
    case [/COLOR][COLOR=#cc0000]'fr' [/COLOR][COLOR=#006600]: require [/COLOR][COLOR=#cc0000]'search_fr.php'[/COLOR][COLOR=#006600]; break;
    default : die([/COLOR][COLOR=#cc0000]'Falsche Sprache!'[/COLOR][COLOR=#006600]);
    }
    [/COLOR][COLOR=#0000cc]?>[/COLOR] [/COLOR] [/LEFT]

    diese Werte übernimmt er dann von der vorherigen Übergabe und springt dann auf das entsprechende search_de.php??

    Versteh ich das richtig??

Jetzt mitmachen!

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