WordPress Crons als Linux Cronjob einrichten

WordPress – Crons als Linux Cronjob einrichten

WordPress bringt sein eigenes Cron-System mit. Dabei wird nicht aller X Minuten ein Cronjob ausgeführt, sondern es wird pro Seitenaufruf geschaut, ob etwas zu tun ist (Pseudo-Cron). Das kann mitunter zu sehr hässlichen Ladezeiten und Performanceproblemen führen.

Um dieses Problem zu lösen, schaltet man diesen Pseudo-Cron ab und stellt es auf einen echten Linux-Cronjob um. Dazu editiert man die wp-config.php und fügt vor

/* Das war’s, Schluss mit dem Bearbeiten! Viel Spaß beim Bloggen. */

folgendes an:

/** Disable pseudo-cronjobs and run them manually in linux crontab */
define('DISABLE_WP_CRON', 'true');

In Linux können dann die Cronjobs verändert werden. Dazu begibt man sich in die Cron-Tabelle via:

crontab -e

Und fügt folgendes an:

# Call wordpress every minute to start all wordpress cronjobs
* * * * * curl --silent -S https://www.example.com/wp-cron.php?doing_wp_cron

Hierbei wird cURL mit folgenden Parametern aufgerufen:

  • –silent: Unterdrücke die Ausgabe von cURL
  • -S: Ausgabe soll harte Fehler trotzdem enthalten

Im Crontab sieht das dann so aus:

Crontab mit curl für automatische WordPress Updates
Crontab mit curl für automatische WordPress Updates

Best practice

WordPress Crons als Linux Cronjob einrichten
WordPress Crons als Linux Cronjob einrichten