wp-cron ist die WordPress-Version eines Cron-Jobs und ein Cron-Job ist eine Aufgabe, die nach einem Zeitplan ausgeführt wird, sei es nur einmal zu einem bestimmten Datum und zu einer bestimmten Uhrzeit oder auf wiederkehrender Basis, wie jeden Tag um 15:00 Uhr oder jede Stunde danach die 15. Minute.
Herkömmliche Linux-Cron-Jobs werden genau zu der Uhrzeit und dem Datum ausgeführt, für die sie konfiguriert sind, ähnlich wie die Taskplaner-Funktion in Windows. In den meisten Hosting-Umgebungen hat WordPress jedoch keinen vollständigen Systemzugriff, um sich selbst zu den Cron-Jobs des Betriebssystems hinzufügen zu können, was erforderlich ist, damit Aufgaben genau zu ihrem konfigurierten Datum und ihrer konfigurierten Uhrzeit ausgelöst werden.
Um dies zu umgehen, verwendet WordPress einen Best-Effort-Ansatz („so nah wie möglich“), um Aufgaben zu planen. Immer wenn ein Besucher eine nicht vom Server zwischengespeicherte Seite auf der Website anzeigt (z. B. jede Admin-Seite oder den WooCommerce-Warenkorb), prüft WordPress, ob etwas in wp-cron ausgeführt werden muss, und wenn ja, fährt es mit der Ausführung fort durch diese geplanten Aufgaben im Hintergrund und stellt auch die angeforderte normale Seite bereit.
Der Nachteil dieses Best-Effort-Ansatzes besteht darin, dass wp-cron keine Möglichkeit hat, ausgeführt zu werden, wenn der Großteil des Datenverkehrs Ihrer Website auf zwischengespeicherte Seiten trifft (was für die Leistung optimal ist), da keine dynamische Verarbeitung stattfindet, um es auszulösen. Um dies zu lösen, sollten Sie einen echten System-Cron-Job in Plesk einrichten, um wp-cron auszulösen. Wir führen Sie unten durch diesen Prozess.
Geplante WooCommerce-Ereignisse
Wenn Sie WooCommerce verwenden, hat es auch seine eigene Warteschlange für geplante Ereignisse, aber es ist auf wp-cron angewiesen, um zu funktionieren.
WooCommerce hat hier eine ausgezeichnete Anleitung zur Fehlerbehebung bei wp-cron (unabhängig davon, ob du WooCommerce verwendest oder nicht). Wir empfehlen dringend, es auszuprobieren, wenn Sie glauben, dass Sie Probleme mit wp-cron haben.
Einrichten von wp-cron als echter Cronjob mit Plesk
Benötigte Zeit:5 Minuten.
Wenn Sie vermuten, dass Sie Probleme mit einer Cron-Aufgabe haben, kann es sehr vorteilhaft sein, normale Seitenaufrufe – wie Personen, die Dinge in ihren Einkaufswagen legen oder bei WooCommerce auschecken, oder alle Seitenaufrufe, wenn Sie kein Caching verwenden – davon zu entkoppeln wp-cron, da Sie nicht möchten, dass die geplanten Aufgaben wichtige Aktionen wie das Auschecken eines Kunden stören.
So gehen Sie beim Plesk-Hosting vor:
- Automatisch ausgelöstes wp-cron deaktivieren
Um das automatische Auslösen des WordPress-Cronjobs zu deaktivieren, öffnen Sie die wp-config.php Datei im Stammverzeichnis Ihrer WordPress-Installation. Sie können die Datei wp-config.php über FTP oder den Plesk-Dateimanager ändern. Suchen Sie entweder nach der Zeile
define('DB_COLLATE', '');
und fügen Sie direkt darunter (oder unter dem Bereich „Andere Anpassungen“) Folgendes in einer eigenen Zeile hinzu:define('DISABLE_WP_CRON', true);
- Einen geplanten Task in Plesk einrichten
Melden Sie sich bei Plesk an und wählen Sie Websites &Domains> Geplante Aufgaben> Aufgabe hinzufügen. Wählen Sie die Option zum Abrufen einer URL und geben Sie die URL wie folgt ein:https://yourdomain.com/wp-cron.php
Stellen Sie Ihren Zeitplan so ein, dass er stündlich ausgeführt wird (auf einem VPS können Sie jedoch einen viel häufigeren Zeitplan eingeben auf Shared Hosting wird eine sehr häufig geplante Aufgabe wahrscheinlich irgendwann in naher Zukunft automatisch beendet).