Url-Parameter in einer Vorlage verwenden - Anleitung

  • Hallihallo,


    die Argumente der Suche werden ja per GET übermittelt.

    Code
    /?mincf_laenge=170.00&maxcf_laenge=170.00&ct_material%5B%5D=194&ct_material%5B%5D=324

    Nun würde ich gerne diese Parameter aus der Url in einer Vorlage verwenden, bzw. auch die weiteren Infos, also Name, Beschreibung von ct_material 194 und 324, damit dann angezeigt wird: "Sie haben gesucht nach Länge 170 und Material Holz und Stahl."

    Ist das möglich?


    Meine Versuche:

    Um auf die Parameter normalen Text zuzugreifen habe ich schon Plugins gefunden, wie z.B: https://de.wordpress.org/plugins/url-params/. Mit Blade habe ich es auch versucht, komme da aber nicht weiter.


    Teillösung:

    Während ich das schreibe, habe ich einen Teil der Lösung schon in der Doku gefunden (wohl vorhin übersehen): https://docs.affiliate-toolkit…blade-engine-hinzufuegen/


    Mit einem Plugin (My custom functions) folgenden Code anlegen:

    Code
    function atkp_modify_bladedata_callback($bladedata) {
        parse_str($_SERVER['QUERY_STRING'], $bladedata['querystring']);
        
        //Die Variable "$querystring" ist als Array nun in der BladeEngine verfügbar.
     
        return $bladedata;  
    }
     
    add_action('atkp_modify_bladedata', 'atkp_modify_bladedata_callback');

    Nun kann ich in einer Blade-Vorlage mit der Variable $querystring auf die einzelnen Parameter zugreifen, z.B. {{$querystring[mincf_laenge]}} wie unter obiger Beispiel-Url.


    Jetzt hat mich der Ehrgeiz gepackt und den Rest habe ich auch fast fertig bekommen. Als Hilfe und Doku für alle, die ein ähnliches Problem haben, hier meine Lösung, die schon Datenbankkenntnisse voraussetzt, damit man weiß, in welchen Tabellen man schauen muß. Aber vielleicht hat Christof ja noch eine einfachere Lösung. ;)

    Wichtig ist die Variable $wpdb global zu setzen, um an die Datenbank zu kommen und mit $wpdb->get_var komme ich an den gewünschten Datensatz, der in der MySQL-Anweisung ausgewählt wird. Für andere Anfragen muß man den SQL-Query entsprechend umbauen.


    Fast fertig.

    Noch bin ich nicht am Ziel. Die ID muß noch von der Url in den Query rein und wenn ein Array in der Url übergeben wird, muß auch noch eine andere Abfrage her. Aber das wird schon noch.

    Verbesserungsvorschläge und Anregungen sind gerne gesehen.

    • Offizieller Beitrag

    Hallo,

    auf die Parameter in der URL kannst du relativ einfach zugreifen.


    Code
    $ct_material = $_GET['ct_material'];


    Du solltest aber immer schauen das du mit dem Code keine SQL Injection hast..



    lg Christof