Bisher hatte ich bei WordPress 3.1 das Plugin WP No Category Base genutzt um das /category/ aus der URL zu entfernen. Bei WordPress 2.0 war es noch einfach ohne Plugin das /category/ aus der URL entfernen. Man setzte einfach in den Permalink-Option in „Kategorie-Basis“ ein ./ und schon wurde das /category/ aus der URL entfernt! Ab WordPress 3 ging dieser Trick nicht mehr aber ein ähnlicher schon, ohne langsames WordPress Plugin.
Mit WordPress 3.0 ging der Trick nicht mehr und es musste ein neue Idee her. Fündig wurde ich mit dem Plugin WP No Category Base welches zuverlässig das /category/ aus der URL entfernte. Leider wurde meine Performance des Blogs durch das Plugin einwenig schlechter und so fragte ich Nadine von Nadine’s Schreibblog nach einer möglichen Lösung zum entfernen des /category/ aus der URL ohne WordPress Plugin! Ihre Antwort war ein „.“ Punkt.
Zitat Nadine:
Gehe in den Adminbereich unter Einstellungen Permalinks, dort gibst du bei Benutzerdefinierte Struktur: /%category%/%postname% ein. Weiter unten unter Kategorie-Basis: einfach nur einen . (Punkt)
Wie gesagt um WordPress 3.0, 3.1.1 oder höher dazu zu bewegen das /category/ ohne Plugin aus der URL zu entfernen muss man nur bei den Einstellungen unter Permalinks ”Benutzerdefinierte Struktur” auswählen dann /%category%/%postname% eingeben und weiter unten bei “Kategorie-Basis” einfach einen . (Punkt) so wie auf dem Bild oben. Danach sollte bei WordPress 3 das /category/ aus der URL entfernt sein ohne WordPress Plugin.
Ich habe natürlich die Funktion getestet und unter Firefox 3.6, Firefox 4, Internet Explorer 8 und Opera 11.01 gab es keine Probleme!
Nachtrag: Achtung, es tauchte doch ein Problem auf und zwar bei den Archiven! Ich konnte nicht in die 2. oder 3. Seite des Archives wechseln. Es kam dann immer ein „Not Found“ Fehlermeldung! Die Fehlermeldung behebt man indem man folgendes in die functions.php der Theme schreibt:
<?php
/**
* NoCategoryBase (Unter Kategorie-Basis muss noch ein . gesetzt werden damit das category in der url entfernt wird!
*/
add_filter(‚request‘, ‚fix_pagination‘, 1);
function fix_pagination($query_vars){
if ($query_vars[„name“] == „page“)
{
unset($query_vars[„name“]);
$query_vars[‚paged‘] = str_replace(‚/‘, “, $query_vars[‚page‘]);
}
elseif ($query_vars[„name“] == „feed“)
{
unset($query_vars[„name“]);
$query_vars[‚feed‘] = ‚feed‘;
}
return $query_vars;
}
?>
Falls dein Browser den PHP-Code nicht richtig darstellt hier nochmal als TXT-Datei NoCategoryBase .
Eine wirkliche Performance-Verbesserung konnte ich dann aber ohne das Plugin WP No Category Base mit dem obigen Code auch nicht feststellen. Fast will ich meinen man lässt das Category in der URL oder schreibt unter Kategorie-Basis einfach irgend etwas hin wie zum Beispiel „blog“ da muss das Plugin oder WordPress das Category nicht wieder ausblenden. Performance-Unterschiede konnte ich zwischen beiden Lösungen nicht wirklich feststellen.
Ui super, freut mich das es geklappt hat und ich dir helfen konnte, ich hoffe der Blog ist jetzt wieder schneller :)
Jap, ist er aber das QuickCache Plugin habe ich immer noch drin!
Ich bin gespannt welche Plugins du so benutzt, mir ist der Aufwand zu groß die alle einzubauen statt einem Plugin, aber bis jetzt lahmt da noch nichts. Mal sehen was bei dir der Auslöser sein könnte.
Hi,
ich habe das gerade mit meinem Blog auch gemacht.
Dazu noch 2 Anmerkungen:
1) Der code in der functions.php muß zumindest im twenty10 Theme ganz oben stehen, sonst funkts nicht.
2) Die alten category-urls sollte man dann auf die neuen weiterleiten, wegen den internen bzw. externen Links, da sgeht in der .htacces z.b. mit
redirectpermanent /blog/category/allgemein http://www.deineurl.de/blog/allgemein
Hi Daniel, der Tipp von dir und Nadine ist top.
Aber…
Ich hab parallel noch ein Plugin für die XML-Sitemap-Erstellung im Einsatz.
In der sitemap.xml taucht dann blöderweise der Punkt mit auf: http://www.meine-url.de/./tolle-kategorie/
Eine Idee, wie der da auch noch verschwinden könnte?
Gruß Micha
Ich habe das Category bei mir in den URL´s jetzt mit drin weil ich da am wenigsten Aufwand hatte. Wenn es gar nicht geht hilft dir das Plugin WP No Category Base weiter. Mein Schwager hat das in seinem Blog installiert und das läuft auch unter WordPress 3.5 noch sehr gut! Wenn da steht nur bis Version 3.4.2 muss das noch nichts heißen. ;-)