URI der aktuellen WordPress-Seite herausfinden

orientierung
Bildquelle: Pixabay, Miss_color

Die Funktion get_permalink() gibt den vollständigen Link einer Seite oder eines Beitrags zurück. Auf Archivseiten ist sie hingegen wenig hilfreich um genau zu wissen, auf welcher URI man grade ist, und auf eine adäquate Funktion für Archive bin ich bisher nicht gestoßen. Für meinen Verwendungszweck (kanonische URL definieren) wäre sie auch gar nicht geeignet. Nachfolgende Funktion gibt die URI von jeder WordPress-Seite auf der man grade ist zurück, unabhängig davon ob Seite, Archiv oder Beitrag…

function pppf_get_permalink() {
    $host = get_home_url();
    $path = $_SERVER['REQUEST_URI'];
    return esc_url($host . $path);
}

Query Parameter (optional) abschneiden

Wird die Funktion beispielsweise zur Festlegung einer kanonischen URL eingesetzt, ist die Variante ohne Parameter geeigneter (je nach Referrer können in der URL mit der jemand auf eine Seite kommt, unterschiedliche $_GET-Parameter enthalten sein die nicht Bestandteil der eigentlichen URI sind). Außerdem bietet sich hier bei einer Multidomain-Installation die Gelegenheit zu definieren, welches die bevorzugte Domain ist, unter der Suchmaschinen die Seiten indexieren sollen.

function pppf_get_permalink( $query = false ) {
    $host = get_home_url(); // ggf. Domain für kanonische URIs hier festlegen, ohne abschließenden Slash, http://example.com
    $path = $_SERVER['REQUEST_URI'];
    $parts = parse_url( $host . $path );
    return esc_url( $host . $parts['path'] . ( false !== $query && isset( $parts['query'] ) ? $parts['query'] : '' ) );
}

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

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

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable