Disfunctions.de

Das Blog der gnadenlosen Fehlfunktionen!

WordPress Kategorie nur auf einer Seite anzeigen

Erstellt von Matthias am Freitag 12. Juni 2009

In WordPress ist es nicht so ganz einfach, dass auf der Startseite der Haupt-Blog läuft, in diesem aber eine bestimmte Kategorie komplett ausgeschlossen (Artikel, Sidebar, Feed,…) ist und eben diese eine Kategorie dann auf einer anderen Seite angezeigt wird ohne die ganzen restlichen Kategorien.

In diesem Blog haben wir die Kategorie “Kurz notiert” aus dem Haupt-Blog herausgenommen und nur auf der Unterseite Kurz notiert dargestellt! Diese ist dann noch fest mit Twitter verknüpft, aber dazu mal in einem anderen Artikel mehr.

Anfangs haben wir da auch viel herum probiert mit verschiedensten Änderungen und Erweiterungen der PHP-Scripts. Dies ist aber erstens recht aufwändig und funktioniert nicht wirklich gut, einmal kann man nicht mehr blättern, dann werden im Feed trotzdem noch alle Artikel angezeigt und auch in den Sidebar Widgets und dem Archiv. Natürlich könnte man auch das noch alles in den einzelnen Files ändern, ist aber ziemlich unnötiger Aufwand, wenn es auch einfacher geht.

Und es geht einfacher, viel einfacher!
Man nutzt einfach das WordPress Plugin ACE (Advanced Category Exluder)! Das Teil ist echt genial! Damit kann man nun festlegen welche Kategorie(n) wo nicht angezeigt werden sollen und welche Kategorien wo angezeigt werden sollen.
Da kann man sich dann schön austoben in den verschiedenen Einstellungen, man kann übrigens auch die Link Kategorien ausschließen oder Ähnliches.

Somit haben wir schon mal die Kategorie aus der Hauptseite ausgeschlossen. Nun fehlt noch die Seite mit der einzelnen Kategorie. dafür braucht man dann doch mal ein kleines wenig PHP, einen weg über ACE oder ein anderes Plugin habe ich so spontan nicht gefunden, aber auch so ist es echt einfach.
Also zuerst entscheidet man sich für eine Template Art. Dies kann man beim Erstellen/Bearbeiten einer neuen Seite rechts unter Attribute machen. Dafür stehen verschiedene zur Verfügung, dies ist von eurem Design abhängig. Sobald man sich für eines entschieden hat, geht man per FTP in den Ordner /wp-content/themes/euer-design-ordner/. Dort sieht man dann verschiedene PHP Dateien mit den Namen die man eben schon beim Template der Seite auswählen konnte. Dieses, das ihr wollt ladet ihr runter. Das Dann in einem Texteditor öffnen und bearbeiten. Ganz am Anfang der Datei steht sowas:


< ?php
/*
Template Name: Namen
*/
?>

Für Namen setzt ihr dann den Titel des Template ein, bei uns heißt es “Kurz-notiert”.
Anschließend sucht man diese Zeile (evtl. kann das auch etwas anders aussehen):


< ?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Vor dies fügt man dann das hier ein:


< ?php query_posts('category_name=kurz-notiert'); ?>

Anstelle von kurz-notiert schreibt ihr dann die Kategorie die ihr auf eurer Seite angezeigt haben wollt, man kann auch mehrere Kategorien durch Komma getrennt reinschreiben oder sogar die ID’s benutzen, wenn man anstatt von category_name dann cat_id nimmt!
Nun die ganze Datei noch unter einem aussagekräftigen Namen speichern und per FTP wieder in den Ordner hoch laden. Dann ins WordPress Backend gehen und die vorhin erstellte Seite bearbeiten und das neue Template unter den Attributen auswählen!

Das wars schon. Viel Spaß damit und Fragen oder Feedback dazu gerne in die Kommentare schreiben.

3 Kommentare zu “WordPress Kategorie nur auf einer Seite anzeigen”


  1. Peter Gielmann sagt:

    sehr nützlicher beitrag.hat mir einige fragen beantwortet.dankesehr


  2. Ömer sagt:

    Hi…

    ich brauch diese antwort wirklich … kannst du vlt den endgültigen code reinposten? Damit ich sicher gehen kann das ich da nichts falsches mache.

    Wenn ich alles umgeändert habe komm bei mir nur eine weiße website sonst nichts.


  3. Koivo sagt:

    Kuhl! Danke! Funzt optimal!

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>