WordPress mit eigenen Funktionen erweitern
WordPress & Co

Die Kategorie im Permalink deines WordPress-Beitrags anzeigen

Das ist doch eine einfache Geschichte! WordPress bietet die passenden Mechanismen an, um die Kategorie der Beiträge in der URL zu zeigen. Dazu muss man nur die Permalinks anpassen. Aber ich will ein wenig mehr und die Kategorie nicht bei jedem Post sehen, sondern nur bei einigen speziellen. Also doch wieder eine Lösung mit ein wenig Quellcode und PHP und Programmieren. Aber keine Angst, wie so oft, erkläre ich es Schritt für Schritt, damit nichts passiert in deinem Blog.

Alle Permalinks anpassen

Einfach rein in das Dashboard und links auf Einstellung > Permalinks geklickt, schon kannst du die Anpassungen vornehmen.  Aber nur mit einem einfachen Klick ist es nicht getan, denn genau das Gesuchte ist nicht in der Standardliste enthalten. Also auf den letzten Punkt – Benutzerdefiniert – geklickt und dann im Eingabefeld /%category%/%postname%/ eingegeben (oder unterhalb auf die passenden Knöpfe geklickt). Noch auf Änderungen speichern geklickt. Schon sehen wir die Post-Kategorie in der URL.

Ja aber das ist genau, was nicht wollte!

Denn eigentlich will ich die Post-Kategorie nur bei einer einzigen Kategorie in der URL sehen, sonst soll nur der Post-Titel als Permalink verwendet werden. Nehmen wir ein einfaches Beispiel:

Ich schreibe alle meine Posts brav in WordPress, aber ich habe eine Kategorie WordPress und eine Kategorie News. Und genau bei der News-Kategorie will ich das /news/ in den Permalink eingefügt wird.

Also so zum Beispiel:
Grundlagen von WordPress in der Kategorie WordPress wird zu https://the-magical-digital-nomad.com/grundlagen-wordpress/
Neue Version von  Textwrangler verfügbar in der Post-Kategorie News wird zu https://the-magical-digital-nomad.com/news/neue-textwrangler-version/

Das geht aber nicht mit Hausmitteln von WordPress, dazu müssen wir ein klein wenig programmieren.

Die Post-Kategorie in den Permalink einfügen

Zu aller erst musst du dir ein Child-Theme anlegen. Wenn du das nicht machst und das Original-Theme änderst, gehen deine Änderungen beim nächsten Update verloren. Aber dies ist gar nicht schwierig. Wie du dir ein Child-Theme anlegst, habe ich bereits in einem anderen Beitrag Schritt für Schritt beschrieben.

Und jetzt können wir beginnen. Also die Finger aufgewärmt und die Datei functions.php in einem passenden Editor geöffnet. So nebenbei, ich verwende gerne Sublime Text zum Entwickeln. Als erstes müssen wird die Post-Kategorie in den Permalink einfügen. Dazu hängen wir am Ende der functions.php folgenden Code an.

Wichtig ist bei dem Code die Zeile #4, dort schreibst den Namen der Kategorie, welche betroffen sein soll hinein. Und in der 6. Zeile den Teil der in den Permalink als Post-Kategorie eingefügt werden soll.
Damit klappt es aber noch nicht ganz. Denn WordPress ermittelt aus dem Permalink (wir nennen den Teil hinter dem Domänennamen auch Slug) verschiedene Werte für die Anzeige der Seite. Jetzt sind die Parameter aber „falsch“ und wir bekommen einen 404 – Seite nicht gefunden.

Ach, das ist doch gar nicht so schwer zu beheben.

Die Rewrite-Rules für die Post-Kategorie anpassen

Diese Regeln sind normalerweise in der Datei .htaccess gespeichert. Die Regeln verändern die Darstellung der URL im Browser und noch vieles andere mehr. Nur, das ist eine andere Geschichte. Doch einfach gesagt, sind sie für die hübsche Darstellung der URLs zuständig. Wir brauchen aber jetzt den umgekehrten Weg. Wir müssen es schaffen, dass die Post-Kategorie nur angezeigt wird, aber mit den Rewrite-Regeln diese intern wieder entfernt wird.

Da es zu unangenehm (und für Laien auch zu gefährlich) ist in der .htaccess-Datei herum zu schreiben, fügen wir den folgenden Code am Ende der functions.php ein. Damit kannst du ihn schnell wieder löschen, falls etwas schief geht. Denn eine falsch .htaccess-Datei legt mal deinen ganzen WebSpace und Blog lahm.

Auch hier gibt es eine wichtige Zeile, es ist nochmals die Nummer 4. Hier steht der Teil der aus dem Permalink entfernt werden soll. Der muss genau gleich wie im vorherigen Code-Abschnitt in der Zeile 6 lauten.

Die neuen Permalinks aktivieren

Das meiste hast du jetzt auch schon geschafft. Aber zwei Kleinigkeiten sind noch zu erledigen. Als erstes musst du die Datei functions.php auf deinen Webserver in das Child-Theme übertragen. Und damit alles gut funktioniert, musst du nochmals in Einstellung > Permalinks gehen. Dort aktivierst du den letzten Punkt – Benutzerdefiniert. Gib im Eingabefeld dahinter /%postname%/ ein. Noch auf Änderungen speichern klicken, damit die Struktur von allen Permalinks durch WordPress neu erstellt wird. Und jetzt hast du die Post-Kategorie in der URL.

Hinterlasse eine Antwort

Deine eMail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * markiert.

Blogheim.at Logo