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'] : '' ) );
}
Schreibe einen Kommentar