WordPress: Verpasste Planung

Verpasste Planung

Seit meinem Umzug zu Netcup habe ich immer wieder mal Probleme mit meinen geplanten Artikeln. Loggt man sich in sein WordPress Backend ein, sieht man bei den geplanten Artikeln, dass man einen Artikel hat, der eigentlich bereits veröffentlicht sein sollte. Darunter steht in roten Buchstaben ‚verpasste Planung‘. Das ist schade, denn das heißt ja, dass dein mühevoll geplanter Artikel für deine Besucher nicht sichtbar ist.

Doch wie funktioniert das mit den geplanten Artikeln eigentlich?

Die Veröffentlichung der geplanten Artikel funktioniert eigentlich ganz einfach: Für die Veröffentlichung zuständig ist das Skript wp-cron.php. Bei jedem Seitenaufruf wird dieses Skript mit angestoßen, dass ‚geplante‘ Aufgaben prüft. Sprich: Je mehr Besucher man auf der Seite hat, desto exakter arbeitet die Zeitplanung. Allerdings heißt das auch, dass das Skript sinnloser weise sehr oft läuft.

Woran scheitert es dann?

Das ist jetzt die 1.00.000€ Frage. Bei meinem vorherigen Webhoster hatte ich auf mehrere Jahre keine einzige verpasste Planung. Ich gehe eigentlich stark davon aus, dass es bei meinem neuen Anbieter irgendwie mit dem Caching zusammenhängt. Die Seite wird einmal gerendert und dann im Cache vorgehalten, so dass diese Besuchern sehr schnell zur Verfügung gestellt werden kann. Daher werden dann wohl auch die Skripte nicht mehr regelmäßig ausgeführt. Das ist allerdings nur eine Vermutung. Bisher konnte ich das selbst noch nicht verifizieren.

Wie kann man es lösen?

Kann man selbst richtige CronJobs verwalten geht das unter Umständen ganz einfach.
Schritt 1: WP-Cron deaktivieren:
Dafür öffnen man die wp-config.php und fügt am besten gleich nach der Datenbank Konfiguration ein:

define('DISABLE_WP_CRON', true);

Schritt 2: Cronjob einrichten:
Das unterscheidet sich von Hoster zu Hoster. Bei Netcup konnte ich einfach den Pfad zur wp-cron.php angeben und einen Zeitpunkt, wann diese aufgerufen werden soll. Da ich auf meinem Blog www.medlan.de immer alle zwei Tage um 10 Uhr veröffentliche, war es für mich auch klar, wie oft ich den geplanten Task im ersten Schritt laufen lassen werden 🙂