Unter bestimmten Umständen ist es erforderlich, oder man hat einfach den Wunsch, eine WordPress-Kategorie auf einer eigenen Seite anzuzeigen. Oder umgekehrt: eine Kategorie von der Startseite auszuschließen. Zum Glück haben die WordPress-Entwickler sich auch dazu Gedanken gemacht und entsprechend vorgesorgt. Der Aufwand ist gering und es ist schnell umgesetzt.
In der Regel geht WordPress bei der Kategorie-Ansicht so vor, dass als erstes nach einer Seite „category-x.php“ gesucht wird. Wobei „X“ die ID der Kategorie entspricht. Ist diese nicht vorhanden, wird die „category.php“ genutzt. Fehlt auch diese, wird die „archive.php“ verwendet. Diese dürfte bei den meisten WordPress-Themes vorhanden sein. Viele Theme-Entwickler oder –Designer sparen sich den Aufwand des Anlegens der „category-x.php“ oder „categorie.php“ – außerdem ist es keine Allround-Lösung.
Als erstes muss also herausgefunden werden, welche ID die Kategorie hat, die man auf der separaten Seite anzeigen möchte. Diese kann man sehen, wenn man in der Kategorie-Übersicht mit der Maus über den Namen einer Kategorie fährt. Unten in der Statusleiste des Browsers wird die ID angezeigt.

Mit der Maus über den Kategorie-Namen fahren.

Die Kategorie-ID (in diesem Fall “9″) wird in der Statusleiste angezeigt.
Ein Plugin gibt es für die Anzeige der Kategorie-ID leider nicht. Wohl aber für Seiten und Artikel. Das Plugin heißt „Restore ID“ und zeigt jeweils in der ersten Spalte der Seiten- und Artikelübersicht die IDs an – sehr nützlich. Das Plugin stammt von Nick Ohrn und kann hier heruntergeladen werden. Hat mit diesem Artikel aber weniger zu tun.
Wenn die ID der Kategorie herausgefunden wurde, muss die entsprechende Kategorie-Seite erstellt werden. Dazu in das Theme-Verzeichnis auf der lokalen Festplatte wechseln (wp-content\themes\dein-theme\), am besten einfach die archive.php kopieren und umbenennen. Der Name der Datei ist dann „category-9.php“. 9 für die ID aus dem Screenshot oben. Hier muss die eigene ID verwendet werden.

archive.php kopieren und entsprechend umbenennen
Auf dieser Seite werden nun ausschließlich die Artikel aus der Kategorie 9 angezeigt. Das gibt die Nummer der ID im Dateinamen vor.
Nun möchte man aber noch, dass gerade diese Kategorie nicht mehr auf der Startseite angezeigt wird. Denn dort zeigt WordPress ja in der Regel die Artikel aus allen Kategorien an.
Dazu muss in der “index.php” eine entsprechende Abfrage vorhanden sein, die prüft, ob es sich bei der Seite um die Homepage handelt; und, wenn dies der Fall ist, soll die Kategorie 9 nicht angezeigt werden. Diese Datei mit einem Editor öffnen und folgenden Code verwenden:
<?php if ( is_home() ) {
query_posts($query_string . '&cat=-9');
}
?>
Diese Abfrage muss vor dem Loop stehen, also vor:
<?php if (have_posts()) : ?>
Beide Dateien (category-9.php und index.php) speichern und auf den Webserver laden. Das war es eigentlich schon. Nun wird die entsprechende Kategorie nicht mehr auf der WordPress-Homepage angezeigt (vorausgesetzt, man verwendet für die Startseite keine statische Seite).
Der Aufruf der Seite erfolgt dann mittels des vergebenen Kategorienamen. Hat Deine Kategorie mit der ID 9 den Namen “Inspiration”, muss folgendes in der URL-Zeile stehen: http://www.deine-domain.de/category/inspiration/. Vorausgesetzt, die Kategorie-Basis in den Permalink-Einstellungen wurde nicht geändert. Dann muss “category” entsprechend angepasst werden.
Passt soweit alles, kann natürlich noch die neue Kategorie-Seite (category-9.php) angepasst und überflüssiger Code entfernt werden. Bis auf den Loop und den Includes von Header, Sidebar und Footer (<?php get_header(); ?>, <?php get_sidebar(); ?>, <?php get_footer(); ?>) kann in der Regel alles entfernt werden. Natürlich besteht die Möglichkeit, eine komplett andere Seite zu coden und zu gestalten.
Wie man sieht ist es mit sehr geringem Aufwand und einfachen Mitteln möglich, immer ein bisschen mehr aus WordPress heraus zu holen.



{ 5 Kommentare… lese sie unten oder schreibe selbst einen }
Hallo,
die Anleitung ist sehr hilfreich und genau das was ich suche. Nur funktioniert der Aufruf der Seite bei mir nicht.
Ich bin bei goneo und mein wordpress liegt unter domain/wordpress. Ich habe auch keinen Ordner Category.
Ich würde mich sehr freuen wenn sie mir helfen könnten.
Gruß
Klossi
Hallo Klossi,
als erstest musst du die Kategorie-ID herausfinden, die du auf der Seite anzeigen möchtest. Das machst du wie oben beschrieben. Danach suchst dir in deinem lokalen Wordpress-Verzeichnis die Datei “archive.php”. Erstelle hiervon eine Kopie und benenne Sie in “category-X.php” um. Das X steht dabei für deine Kategorie-ID. Hat die Kategorie, die du anzeigen möchtest z.B. die ID 4, musst du die Datei in “category-4.php” umbenennen. Lade die Datei auf deinen Webspace und rufe sie auf: http://www.deine-domain.xx/category-4.php
Hallo deviant,
also ich hatte gestern schon die Umbenennung der archive.php hinbekommen. Habe es sogar geschafft 2 Kategorien auszublenden. Jetzt möchte ich von meiner HP aus in einem DIV die überarbeitete Kategorieseite anzeigen.
Jetzt zu den Fakten:
Wenn ich, wie oben beschrieben (Link), die Kategorie aufrufen will sehe ich nur die Startseite meiner Domain. Die Permalinkseinstellungen sind auf Standard und bei Kategorie steht kein Wert drin. Meine WP Installation (3.0) befindet sich unter domain.de/wordpress. Also was muss ich bei den Permalinkseinstellungen drin haben um den Link wie oben beschrieben verwenden zu können? Bei Standard komme ich nur über domain.de/wordpress/?cat=3 zur Seite und diesen Link kann ich für den Aufruf in einem Div nicht verwenden.
Vielen Dank für die AW schon im Voraus.
Dann musst Du nicht domain.de/wordpress/?cat=3 aufrufen, sondern domain.de/wordpress/category-3.php
Die “category-3.php” liegt ja dann in deinem WP-Verzeichnis
Schöne Erklärung, darauf aufbauend kann man sich eine Menge zusammen basteln. Danke sehr!