Angenommen, eine Kulturstätte möchte mit Hilfe von WordPress auf wechselnde Veranstaltungen hinweisen. Darüber hinaus sollen vergangene Veranstaltungen automatisch von der Startseite verschwinden. Hier haben wir zwei Probleme.
- Mit Bordmitteln sortiert WordPress immer umgekehrt chronologisch, sodass der neueste Beitrage oben steht, der älteste unten. Der gerade bevorstehende Termin wäre also auf den ersten Blick unter Umständen gar nicht sichtbar, ohne dass man herunterrollen müsste. Statt dessen würde ein Termin angezeigt werden, der noch weit in der Zukunft liegt.
- Vergangene Veranstaltungen sind zwar irgendwann auf der Startseite nicht mehr sichtbar (sondern man müsste die Paginierung bemühen und auf »Ältere Beiträge« klicken), möglicherweise aber doch – je nach Anzahl der Events und der in WordPress eingestellten Menge der Artikel, die auf der Startseite angezeigt werden sollen. Auch hierfür bietet WordPress von Haus aus keine Möglichkeit, Artikeln ein Ablaufdatum zu verpassen.
Doch es gibt Abhilfe, und zwar über zwei Plugins: Chronological Posts und Post Expirator. Das erstgenannte sortiert die Beiträge um, sodass der neueste unten steht und der älteste oben – ich setze mal voraus, dass freilich die Veranstaltungen so eingegeben werden, dass diejenigen, die weiter in der Zukunft stattfinden, eben auch später eingetippt und veröffentlicht werden als die kurz bevorstehenden. Das zweite Plugin ermöglicht die Eingabe eines Verfallsdatums. Zum Beispiel kann man einen Tag festlegen und den Beitrag einer Kategorie zuordnen, in die er verschoben werden soll, etwa »Vergangen«.
Nun muss man noch bewirken, dass diese Kategorie »Vergangen« gar nicht auf der Startseite angezeigt wird. Hierfür müssen ein paar Zeilen Code in die Datei funcitons.php im Theme-Ordner eingefügt werden. Wie das geht, wird sehr gut auf der Website www.pas-solutions.ch im Beitrag Nur Artikel bestimmter Kategorien auf der Startseite anzeigen beschrieben. In unserem Fall hat die Kategorie, die ausgeblendet werden soll, die Nummer 2:
// 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', '-2' );
}
}
// Quelle: https://www.pas-solutions.ch/allgemein/wordpress-nur-artikel-bestimmter-kategorien-auf-der-startseite-anzeigen/
Und das war’s auch schon. Das Ganze dauert – na ja, ich habe die Zeit nicht abgestoppt – vielleicht eine Viertelstunde.