eigenes URL rewrite ohne Funktion

  • Hallo,

    ich möchte eine Wordpress Seite mit einer eigenen Variablen aufrufen. Dazu habe ich die Variable mit folgendem Code registriert:

    Code
    add_filter( 'query_vars', 'addnew_query_vars', 10, 1 );
    function addnew_query_vars($vars)
    { 
        $vars[] = 'semData'; 
        return $vars;
    }

    Das funktioniert auch soweit, der Link sieht jetzt so aus: seite.de/anmeldung/?semData=123

    Hab jetzt recherchiert, wie ich über eine rewrite rule das ganze lesbar machen kann, aber es will nicht funktionieren. Folgenden Code habe ich letztendlich probiert, wobei die auskommentierte Funktion aber auch nicht funktioniert:

    Eingefügt wird der Code über das Plugin Snippets, da ich unter Oxygen kein Theme habe. Das Snippet ist natürlich veröffentlicht und sichtbar. Warum funktioniert nicht, was laut meinen Recherchen funktionieren sollte?

    Grüße, chapolote

    • 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

  • Noch ein Nachtrag:

    ich lese und lese über dieses Thema und komme nicht weiter. Mein Vorgehen basiert unter anderm darauf, was ich hier gelesen habe:
    https://stackoverflow.com/a/45385599 und hier:
    https://www.hongkiat.com/blog/wordpress-url-rewrite/

    Laut dem ersten Link, sollte meine URL ja jetzt so aussehen: seite.de/anmeldung/123
    Im Plugin Rewrite Analyzer ist meine Rewrite-Rule sichtbar, und wenn ich zum Testen die URL seite.de/anmeldung/?semData=123 eingebe, wird mir auch meine Rewite Rule angezeigt aber als pagename wird mir nur anmeldung angezeigt, siehe Screenshot.

    Ich hab langsam den Verdacht, daß mein Fehler eventuell darin liegt, wie ich die Seite mit angehängter Variable in meinem Snippet aufrufe:

    Code
    $target = get_permalink( 280 );
    echo '<a href="'.esc_url( add_query_arg( 'semData', '123', $target ) ).'">Link</a>';

    Hab die Hoffnung noch nicht aufgegeben, daß sich hier jemand findet, der mir hier weiterhelfen kann... ;)

  • Und schon bin ich selber drauf gekommen: hab das Pferd offensichtlich von hinten aufgezäumt.....

    Habe die ganzen Anleitungen eigentlich so verstanden, daß meine Rewrite Rule aus seite.de/anmeldung/?semData=123 den lesbaren Link generiert. So ist das da meiner Ansicht nach auch beschrieben. Anscheinend verstehe ich das falsch, denn wenn ich den Link in meinem Snippet so übergebe:

    Code
    echo '<a href="'.esc_url($target.'123').'">Link</a>';

    erhalte ich meinen lesbaren Link und semData ist auf der aufgerufenen Seite verfügbar.

    Auch wenn das so jetzt funktioniert, ist mein Vorgehen jetzt richtig?

    Und noch eine Frage am Rande dazu: immer wieder lese ich, daß Links in Wordpress aus Sicherheitsgründen mit esc_url() aufgerufen werden sollen. Gilt das generell, oder nur für bestimmte Aufrufe? In meinem Fall: ist das in obigem Code nötig oder völlig überflüssig?

    Einmal editiert, zuletzt von chapolote (18. Dezember 2019 um 12:02)

Jetzt mitmachen!

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