WordPress nur Artikel bestimmter Kategorien auf der Startseite anzeigen

Standardmässig kann man in WordPress bestimmen, ob man auf der Startseite eine statische Seite oder die letzten Beiträge angezeigt haben möchte. Hat man seine Beiträge in verschiedene Kategorien unterteilt, werden grundsätzlich auch alle Artikel angezeigt. Manchmal ist es aber erwünscht, nur Beiträge bestimmter Artikel auszugeben. So zum Beispiel, wenn man eine Kategorie „Aktuelles“ erstellt hat. Diese Beiträge sollen dann vielleicht auf der Startseite publiziert werden, wohingegen Beiträge anderer Kategorien eher für andere Seiten bestimmt sind.

Wie meist gibt es auch für dieses Problem mehr als eine Lösung. Ich möchte hier zwei Varianten vorstellen, die eine mit dem Plugin „Front Page Categories“ und die andere mit einer manuellen Funktion in der functions.php.

Das Plugin „Front Page Categories“

Das Plugin „Front Page Categories ist sehr einfach und benutzerfreundlich aufgebaut. Nachdem man das Plugin installiert und aktiviert hat, findet man unter dem Modul Einstellungen einen neuen Punkt „Front Page Categories“. Klickt man diesen an, bekommt man eine übersichtliche Liste mit all seinen vorhandenen Kategorien.

Front Page Categories

Hier kreuzt man jetzt einfach alle Kategorien an, welche man angezeigt haben möchte und speicher das ganze ab. Nun werden auf der Startseite nur noch Beiträge aus den ausgwählten Kategorien angezeigt.

Hinweis: Das Plugin wurde schon seit einiger Zeit nicht mehr upgedatet. Bei meinem Test funktioniert es aber mit der WordPress Version 3.8.2 noch einwandfrei.

Die manuelle Variante in der functions.php

Wer nicht für jede kleine Änderung ein Plugin installieren möchte, der kann auch folgende kleine Funktion in die functions.php Datei des aktiven Themes einfügen.

// Funktion, um nur bestimmte Kategorie-Beiträge auf der Startseite anzuzeigen
add_action( ‚pre_get_posts‘, ‚change_the_posts‘ );
function change_the_posts( $query ) {
if( $query->is_main_query() && $query->is_home() ) {
$query->set( ‚cat‘, ‚3‘ );
}
}

Gut anzuschauen gilt es hier vor allem die Zeile $query->set( ‚cat‘, ‚3‘ );. Hier gibt man nämlich die ID der Kategorie an, welche angezeigt werden sollen. Herausfinden kann man die entsprechende ID, indem man im Modul Beiträge die Rubrik „Kategorie“ aufruft, und dann auf die gewünschte Kategorie klickt. Jetzt wird in der Adresse des Browsers unter anderem auch die gewünschte ID angezeigt:

Kategorie Adresse

Will man mehrere Kategorien für die Darstellung auf der Startseite auswählen, führt man diese einfach mit Komma getrennt auf, also z.B.

$query->set( ‚cat‘, ‚3, 4, 5‘ );

Es gibt auch die umgekehrte Variante, indem man unerwünschte Kategorien ausschliesst. Die geschieht einfach durch ein Minus. Möchte man also alle Kategorien ausser der Kategorie 4 anzeigen, würde die entsprechende Zeile folgendermassen aussehen:

$query->set( ‚cat‘, ‚-4‘ );

Hinweis: Es gibt WordPress-Themes, bei denen funtioniert diese manuelle Anpassung in der functions.php nicht. In diesem Fall würde ich den Einsatz des Plugins empfehlen.

17 Kommentare

  1. Sehr gut! Und ich fummel mir seit einigen Stunden in der loop.php einen zurecht… 😀 Manchmal sollte man direkt Google befragen, anstatt sich zu quälen.

    Danke für den Beitrag! 🙂

  2. Hallo, leider funzt das Plugin unter 3.9.2 nicht, es wird unter Erweiterung leide nicht “Front Page Categories” nagezeigt, plugin ist aber aktiv. Gibt es noch etwas vergleichbares?

    Vielen Dank schon mal.

  3. Der „Ultimate Category Excluder“ funktioniert einwandfrei und einfach!

  4. Hallo,

    lieben Dank für das Skript. Wir mussten leider feststellen, dass wir uns nach Änderung des Skipts nicht mehr ins Backend einloggen konnten. Sah so aus, als wären unsere Passwörter falsch …

    Habt ihr ne Idee was schiefgelaufen sein könnte? Wir würden die Funktion nämlich gerne hinzufügen.

    Danke!

    • Hallo Glori

      Hast du die Variante mit der functions.php Datei versucht? Wenn ja würde ich die Datei einmal per FTP herunterladen und die Änderungen wieder rückgängig machen, dann kannst du dich sicher auch wieder einloggen.

      Dann würde ich einmal versuchen, in dem Code-Teil, die Anführungs- und Schlusszeichen manuell zu ersetzen. Der Editor wandelt die Zeichen beim einfügen hier falsch um, sodass die Zeichen nicht richtig erkannt werden.

      Das wäre sicher einmal einen Versuch wert.
      Viel Erfolg und Grüsse
      Christoph

  5. Vielen Dank für den Tipp. Hat wunderbar geklappt.

  6. Hallo,

    so logisch es aussah, funktioniert es bei mir leider nicht. Die Kategorienummern habe ich nat. geprüft, aber die Startseite „reagiert“ nicht auf die Funktion. Kann es am Theme liegen, in dem bei mir in der index.php kein eigener Loop für Posts steht, sondern nur der Verweis auf die Content.php (die den Loop dann enthät)?

    • Hmm, da bin ich ehrlich gesagt überfragt. Es könnte natürlich schon sein, dass es am Theme liegt. Falls du ein Backup hast, könntest du einmal versuchen, dass Theme auf ein Standard-Theme zu ändern und zu schauen, ob es dann funktioniert.

      Grüsse
      Christoph

  7. Vielen Dank! Endlich weiß ich, nach was für einem Plugin ich schauen muss!
    Viele Grüße
    Carolin

  8. Danke für den Plugin-Tipp. Das ist ja einfach damit!

  9. Hallo, danke für den hilfreichen Artikel. Nur dürfen im Quellcode der functions.php keine Anführungszeichen (einfache Gänsefüßchen) vorkommen (‚‘) – dein WordPress hat die Kodierungszeichen (') anscheinend automatisch umgewandelt.

  10. Hallo, ich bin volle Anfängerin und habe nur die gratis Version von wordpress. Das Plugin kann ich deswegen nicht installieren, gibt es eine Möglichkeit für mich die mauelle Variante zu nutzen? Ich habe keine Ahnung wie ich zu der functions.php kommen könnte? Vielen Dank schon mal

    • Hallo Nicole

      Wenn, dann findest Du die functions.php unter Design > Editor. Es ist aber immer gefährlich (und man kann die Seite schnell zum Absturz bringen, wenn etwas im Code nicht stimmt), die functions.php selber anzupassen. Von daher würde ich Dir das als Anfängerin nicht wirklich empfehlen (und wenn, dann vorher ein Backup der Seite machen, falls was schief geht).

      Grüsse
      Christoph

Trackbacks/Pingbacks

  1. WordPress: Veranstaltungshinweise mit Verfallsdatum | Mediengestaltung Torsten Kelsch - […] eingefügt werden. Wie das geht, wird sehr gut auf der Website www.pas-solutions.ch im Beitrag Nur Artikel bestimmter Kategorien auf…

Einen Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.