Aktuelle URL in WordPress ermitteln

WordPress Logo

In WordPress sind einige Dinge nicht so einfach, wie sie zunächst erscheinen. So auch das Auslesen der aktuellen URL inklusive Query-String. Folgender Code sollte aber in allen Situationen erfolgreich sein:

$current_url = add_query_arg($_SERVER['QUERY_STRING'], '', home_url( $wp->request ));

(via)

Wer auf die Nutzung von „$_SERVER“ verzichten möchte, kann dieses Code-Snippet verwenden:

$current_url = home_url(add_query_arg(array(),$wp->request));

Dieses Snippet funktioniert allerdings nur, wenn WordPress Permalinks benutzt. Wenn nicht muss das Snippet folgendermaßen angepasst werden:

$query_args = $wp_rewrite->using_permalinks() ? array() : $wp->query_string;
$current_url = esc_url_raw(home_url(add_query_arg($query_args, $wp->request)));

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter und Facebook folgt.

3 Antworten

  1. Danke, toller Artikel! Einfach kurz und knackig erklärt.
    Das Snippet ist zwar schon ein paar Jahre alt, aber der Tipp funktioniert noch immer gut. :)

  2. Uwe sagt:

    Danke Tobi. Hilfreicher und kurzer Beitrag. Toll.
    Es sind zwar schon ein paar Tage vergangen, möchte es aber trotzdem versuchen, dir darauf eine Frage zu stellen. Wo trage ich den Code ein? Und wie kann ich es abfragen im Frontend? Der Hintergedanke ist, dass ich auf einer Produktseite (WOOCOMMERCE), auf der ich stehe, die URL ermitteln muss, weil ich sie auf der selben Seite an anderer Stelle weiterbearbeiten will. Ich bräuchte quasi die URL in einer Variable, die in zwischen den Text einbauen kann.

    Kennst du da eine Möglichkeit?
    Danke für Deine Bemühungen!

    VG Uwe

    • Tobi sagt:

      Hallo Uwe,
      den Code kannst du in jedes Theme-Template einbauen. Die URL ist dann automatisch in der Variable „$current_url“ gespeichert. Ausgeben kannst du dann einfach via „echo“.
      Viele Grüße Tobi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.