WordPress 3 /category aus der URL entfernen
Bei WordPress ist es ja möglich über das Admininterface die Linksturktur an zu passen. So kann man z.B. einstellen ob die Artikel oder Seiten mit einer ID oder dem Seitennamen verlinkt sind. Bei der Kategorie und den Tags hat man ebenfalls die Möglichkeit an zu geben wie die Kategorie oder die Tags verlinkt sind. Standardmäßig ist die Verlinkung der Kategorien folgendermaßen:
domain.de/category/Kategoriename
Hier kann man jetzt im Admininterface bei den Permalinks das Feld wo gerade category steht verändern und es z.B. Kategorie nennen. Aber ich fände es wäre eigentlich viel praktischer und schöner wenn einfach direkt der Kategoriename dort steht. Aber leider ist das auch mit der WordPress Version 3 nicht von haus aus möglich. Aber mit einem kleinen Trick kann man sich helfen und den Kategorienamen direkt hinter der Domain anzeigen lassen ohne den category Platzhalter.
In der Version 2 war es noch möglich das man einfach im WP admin in das Permalinksmenu gegangen ist und dort bei dem Kategorie-Basis Feld einfach einen “/.” eingetragen hat. Aber nach dem Update auf WordPress 3 hatte es auf diese weiße bei mir nicht mehr Funktioniert. Wenn Kategorielinkstruktur so mit dem Punkt eingegeben hatte gingen zwar die Links wie gewünscht auf domain.de/Kategoriename aber die Seiten konnte man nicht mehr aufrufen.
Aber wenn man eine Zeile in seiner Htaccess Datei ergänzt ist es wieder möglich diese Linkstrukur zu verwenden. Dazu öffnet man die Htaccess Datei und fügt folgendes hinzu:
RewriteRule ^category/(.+)$ http://www.domain.de/$1 [R=301,L]
Anstatt dem http://www.domain.de gibt man natürlich die Adresse von der eigenen Webseite an. Nachdem man die Htaccess Datei ediert hat wechselt man wieder in das Admininterface von WordPress und geht dort unter Einstellungen in das Permalinks Menu. Dort gibt man bei dem Textfeld rechts neben “Kategorie-Basis” einfach einen . ein und schon werden die Kategorielinks wie gewünscht nach folgendem Muster dargestellt:
domain.de/Kategoriename
Wenn ihr einmal doch wieder die “alte” Linkstruktur haben möchtet entfernt ihr einfach wieder den Punkt aus dem Textfeld und die Zeile in der Htaccess Datei.
Nachtrag: Ich hatte gerade noch die Information bekommen das es leider nicht so ganz richtig so funktioniert unter WordPress 3, denn bei manchen Browsern wird bei dieser Konstellation ein Fehler ausgegeben und man kann auf die Kategorien nicht zugreifen.
Damit die Weiterleitung richtig Funktioniert müsst ihr im WP-Admin bei den Einstellungen unter Permalinks „Benutzerdefinierte Struktur“ auswählen und folgendes eintragen:
/%category%/%postname%
Außerdem könnt ihr dann auch den Htaccesseintrag entfernen.
Bei welchen Browsern wird denn dieser Fehler ausgegeben bzw. kannst du sagen ob es bei diesem http://wordpress.org/extend/plugins/wp-no-category-base/ Plugin auch der Fehler vorhanden ist?
Die Fehler kamen bei Opera und Firefox, aber im Internetexplorer ging es. Ob der Fehler auch bei dem Plugin kommt weiß ich jetzt nicht, da ich dieses Plugin noch nicht ausprobiert habe. Denn ich denke für diese Einstellung muss man nicht extra ein Plugin aktivieren.
Finde ich auch, dass man dazu nicht extra ein Plugin schalten muss. Aber in dem Fall muss man es doch, zumindest noch, denn es gibt sonst keinen Lösungsweg der das schafft.
Ich hab den manuellen Eingriff mal probiert und kann ebenfalls bestätigen das es nur mit dem Internet Explorer klappt, bei Opera, Firefox sowie Safari funktioniert es leider nicht.
Das Plugin dagegen macht den Job problemlos, auch bei WP 3.
Extra ein Plugin einzuschalten wär etwas dumm. auch wundert mich, dass WordPress das nicht per standard anbietet. dieses /category/ benötigen ja wohl die wenigsten. 🙂 danke jedenfalls für den tipp, war gerade echt lange am suchen, wie ich das umsetzen kann.
Wenn ihr eine einfache Lösung braucht um OHNE Plugin die Kategorie-Basis bzw. Tag-Basis zu entfernen, dann habe ich eucheinen Lösungsweg aufgeschrieben. Ich hoffe ich war eine Hilfe! 🙂
Danke, hat mit einer Mischung geklappt. Das /. wollte nicht, hat WP immer in einen . umgewandelt.
Aber der Rewrite plus eine Änderung in der rewrite.php habens gebracht 🙂