Wordpress URL-Design ohne /category/-Ballast

16. August 2005 | Kategorie: | Jörg Petermann, einfach persoenlich Weblog

Wordpress URL-Design ohne "/category/"-Ballast

Mit Wordpress 1.52 geht eine weiter verbesserte Version der bekannten Weblog-Software an den Start. Wer suchmaschinenfreundliche URLs in seinem Wordpress Weblog einsetzen möchte, kommt um den "/category/"-Ballast nicht herum. Der Beitrag zeigt einen Weg auf, die permanenten Wordpress-URLs "/category/"-frei zu nutzen.

Bereits in der Wordpress-Version 1.3alpha hatte sich bei der Generierung von Permalinks viel getan. Ein neuerer Blick in die Version 1.513 und 1.52 nun zeigte mir weitere Fortschritte. Als Freund eines sehr schlanken und effizienten URL-Designs habe ich nach unkonventionellen Wegen zum Ergebnis gesucht.

Meine anfänglichen Versuche, den Bezeichner "/category/" im Admin-Menü Optionen/Permalinks zu ersetzen schlugen alle fehl. Grund dafür ist, dass dieser Bezeichner bei der Generierung der URLs zur Identifikation der Kategorie-URLs benutzt wird. "/category/"-freie URLs gibt es also nur durch die leichte Modifizierung der Wordpress-Datei:

../wp-includes/classes.php

Wenige, aber sehr entscheidende Anpassungen schaffen eine Lösung.

Schritt 1

Die zusätzliche Generierung des URL-Slugs "/category/" wird unterdrückt. Zur besseren Veranschaulichung habe ich die Zeile kopiert und die Original-Zeile auskommentiert. Die Änderung kann so jederzeit nachvollzogen und rückgängig gemacht werden. Die Zeilen sind Bestandteil der Funktion function get_category_permastruct().

if (empty($this->category_base))
#      $this->category_structure = $this->front . 'category/';
       $this->category_structure = $this->front . '';
else
       $this->category_structure = $this->category_base . '/';

Schritt 2

Nach diesem Schritt ist zunächst die Generierung der URL in Ordnung. Bei der Abarbeitung der URL-rewrite-Regeln in der htaccess-Datei tritt jedoch ein Fehler auf. Durch den fehlenden Zusatz /category/ kommen die falschen URL-rewrite-Regeln zur Ausführung. Abhilfe schafft hier, die Reihenfolge der rewrite-Rules in der htaccess-Datei durch Anpassung der Funktion function rewrite_rules() dauerhaft zu veranlassen.

// Put them together.
# $this->rules = $page_rewrite + $root_rewrite + 
                 $comments_rewrite + $search_rewrite +                                  
                 $category_rewrite + $author_rewrite + 
                 $date_rewrite + $post_rewrite;
$this->rules = $page_rewrite + $root_rewrite + 
               $comments_rewrite + $search_rewrite + 
               $author_rewrite + $date_rewrite + 
               $post_rewrite + $category_rewrite;

Stellt man die Kategorie-Regeln an das Ende der htaccess-Regeln, werden alle Archive korrekt ausgeführt. Das Ziel schlanke und ballastfreie URLs ist erreicht.

Anmerkungen

Bei der Lösung der Aufgabenstellung habe ich auf eine schnelle Lösung für den Einzelfall abgestellt. Erst danach habe ich mich entschlossen, die Lösung zu veröffentlichen.

Es mag bessere oder saubere Möglichkeiten geben, die Änderungen einzubinden. Die vorgestellte Lösung zeigt jedoch, dass mit wenig Mitteln ein sehr gutes ausgewogenes Ergebnis zu erreichen ist. Bei sinnvoller Anordnung der rewrite-Rules benötigt man den Zusatz "/category/" nicht zwingend.

Für meine Wordpress-Anwendungen werde ich konsequent mit dieser Lösung arbeiten. solange in Wordpress standardseitig keine wirklich ballastfreien URLs erzeugt werden können.

Siehe auch: Suchmaschinen lieben schlanke Permalinks bei Wordpress Weblogs

Hinweis / Haftungsausschluß

Die hier vorgestellt Lösung wurde lokal wie in meinem Test-Weblog getestet und funktionierte bisher sehr zufrieden stellend. Die Anwendung und Umsetzung der vorgestellten Lösung erfolgt jedoch auf eigene Gefahr und eigenes Risiko. Jegliche Haftung für Fehler und deren Folgen schließe ich aus.

Tutorial URL-Design

Wer mehr rund um das Thema URL-Design in Weblogs erfahren will, mag u.a. vielleicht nachstehende Beiträge lesen:

Veröffentlicht im einfach persoenlich Weblog unter URL:
http://www.einfach-persoenlich.de/2005-08-16/-wordpress-url-design-ohne-category-ballast.html

einfach persoenlich Movabletype Weblog - © 2004-2005 Dipl.-Ing. Jörg Petermann
Persönliche Gedanken, Ideen und Anregungen zu modernem Webdesign, CSS, Movable Type Webblogs & Suchmaschinen