kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

WordPress: Geplante Beiträge inkl. Permalink anzeigen

WordPress bietet die Möglichkeit Beiträge zu planen und automatisch zu einem zukünftigen Zeitpunkt zu veröffentlichen. Die Funktion wird aber auch häufig dazu eingesetzt eine Kalenderfunktion zu realisieren. Stark vereinfacht funktioniert das so: Die einzelnen Termine (Beiträge) werden zunächst geplant, anschließend wird ein individueller Loop verwendet um alle Beiträge anzuzeigen die den post_status future haben. Sobald das Datum erreicht ist, ändert WordPress den Status in published, folglich verschwinden abgelaufene Termine aus dem Kalender. Auf diese Weise lassen sich sehr schön anstehende Termine, beispielsweise die Tourdaten einer Band, anzeigen. Doch leider funktionieren bei diesem Prinzip die Permalinks nicht.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, WordPress, Adobe XD, HTML & CSS Grundlagen, Website-Optimierung …

Jetzt Frühbucher-Rabatte sichern!

Geplante Beiträge nur für eingeloggte User / Admins sichtbar

Sofern man die Termine nur in einer Übersicht anzeigen möchte funktioniert die Vorgehensweise mit dem individuellen Loop einwandfrei. Alle geplanten Inhalte des Beitrags lassen sich über den Loop und über RSS-Feeds abbilden. Möchte man hingegen auch eine Detailansicht (single.php) zu jedem Termin anbieten, steht man schnell vor einem Problem. Die Detailansicht, die über den von WordPress generierten Permalink erreichbar ist, funktioniert nicht. Nur eingeloggte User können die geplanten Beiträge sehen – alle anderen Besucher sehen einen Error 404.

Alle geplanten Beiträge anzeigen

Mit folgenden Code-Snippet ist das Problem gelöst. Alle geplanten Beiträge werden angezeigt unabhängig von Kategorie, Post Type etc.
Fügt den nachfolgenden Code ganz einfach in die functions.php eures Themes ein.

/* Show future posts for all categories, post types etc. */
function show_future_posts($posts)
{
   global $wp_query, $wpdb;
   if(is_single() && $wp_query->post_count == 0)
   {
      $posts = $wpdb->get_results($wp_query->request);
   }
   return $posts;
}
add_filter('the_posts', 'show_future_posts');

Das Snippet habe ich im WordPress-Forum ausgegraben.

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

4 Kommentare

  1. Stefan

    Verfasst am 2. April 2012 um 15:41 Uhr.

    Interessant, und wie funktioniert die selbe Funktion für den öffentlichen Bereich um geplante Beiträge einfach nur anzuzeigen im Frontend? Ohne den Permalink dann natürlich.

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.