Mit WordPress lassen sich bekanntlich viele (eigentlich fast alle) Wünsche für eine Website verwirklichen. Die Möglichkeit Beiträge zu planen und zu einem bestimmten Datum automatisch veröffentlichen zu lassen, ist an sich ja schon ein sehr schönes Feature.
Oft wird diese Funktion benutzt um jegliche Art von Terminen in WordPress zu verwalten.

Standardmäßig leider nicht öffentlich

Da der Post-Status zum gewünschten Zeitpunkt automatisch von „future“ auf „publish“ geändert wird, lassen sich mithilfe eines individuellen Loops, der nur Beiträge mit dem Status „future“ liefert, schnell und einfach Übersichten zu Terminen erstellen. Sobald der Status in „publish“ geändert wird, verschwindet der Termin aus der Liste.

Solange man nur eine Übersicht, zum Beispiel als Liste, anzeigen möchte, wäre man hiermit schon fertig. Soll aber über den Permalink Details auf der Einzelseite (single.php) angezeigt werden, stößt man schnell auf das Problem, dass man die Seite nur als angemeldeter Benutzer angezeigt bekommt. Allen anderen wird ein 404 – not found Error ausgespielt.

Übrigens:

Wenn du wissen willst, wie man den richtigen Permalink eines geplanten Beitrags generieren kann und nicht nur die URL mit URL-Parametern, bist du bei folgendem Artikel richtig.

WordPress Header Wallpaper Permalink Future Post
WordPress Wallpaper Future Permalink – Foto by Alex Wagner

WordPress – richtigen Permalink zu geplantem Post in der Zukunft

Als ich neulich für die Homepage einer meiner Bands ein Template zur Darstellung von Terminen / Events erstellt habe, bin ich auf ein Problem gestoßen, an das ich zu beginn absolut nicht gedacht habe. Warum muss ich geplante Beiträge überhaupt…

Geplante Beiträge öffentlich zugänglich machen

Mit folgendem Code, den ich auf kulturbanause.de gefunden habe, lassen sich alle Beiträge unabhängig von Status, Kategorie, Post-Type, etc. öffentlich für jeden Besucher anzeigen.

Diesen Code einfach in die functions.php des verwendeten Themes einfügen.

/* 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');