Dynamische Permalinks in WordPress

Das Permalink-System von WordPress kann mit Hilfe von Structure Tags sehr gut an die eigenen Bedürfnisse angepasst werden. Dabei ist die Einstellung %postname% die wohl gängigste und praktikabelste Lösung. Will man jedoch echte dynamische Links realisieren, muss man zunächst das System mit eigenem Code erweitern.


Dabei bietet die mächtige Rewrite API von WordPress viele Möglichkeiten, um das System genau den eigenen Anforderungen anzupassen. Will man kompletten Freiraum, konfiguriert man WordPress so, dass beliebige URLs (mit beliebig vielen Ebenen) möglich werden. Dies hat beispielsweise zur Folge, dass der Aufruf von

http://www.tld.com/dies/ist/eine/individuelle/url/

die Ausgabe

Array
(
   [0] => "dies"
   [1] => "ist"
   [2] => "eine"
   [3] => "individuelle"
   [4] => "url"
}

erzeugt. Damit stehen alle weiteren Wege offen, um seinen eigenen Router zu programmieren und entsprechenden Content auszugeben. Um das gewünschte Verhalten zu erreichen, nutzen wir die Actions "rewrite_tag" und "rewrite_rule" und ergänzen die Datei functions.php des aktiven Themes mit folgendem Code:

eecc6d44ed7c18e2066e

Anschließend ist es zwingend erforderlich, die Permalink-Einstellungen neu abzuspeichern (Einstellungen > Permalinks > Änderungen übernehmen oder alternativ der einmalige Aufruf der Funktion flush_rewrite_rules()), damit die neuen Regeln greifen. Schließlich legen wir eine neue Seite mit dem Permalink "rewrite" und dem Template "rewrite-page" an, welches durch folgende Datei zunächst angelegt werden muss:

eecc6d44ed7c18e2066e

In der Standardkonfiguration werden alle URLs abgegriffen. Dabei kann die Variable $base auch mit beliebigen verschachtelten Unterordnern ausgestattet werden: Der Wert "pop/up" ermöglicht beispielsweise das Abgreifen der URL

http://www.tld.com/pop/up/my/url/

Alle anderen URLs sind davon unberührt – diese werden wie gewohnt von WordPress verarbeitet.

Zurück