Es gibt ein paar Nachteile: Erstens, wenn Sie wp-cron.php als CLI verwenden, werden Dinge wie $ _SERVER-Variablen nicht festgelegt. Menschen überwinden diese Einschränkung, indem sie stattdessen eine Curl-Anfrage an wp-cron.php verwenden.
Zweitens, weil WP selbst nicht mit wp-cron.php geladen ist; Wenn Sie ein SMTP-Mailer-Plugin verwenden, wird dieses beim Aufruf von wp-cron nicht geladen. Die Verwendung eines Curl-Aufrufs überschreibt dieses Problem erneut. Curl scheint die am häufigsten verwendete Methode zu sein.
Jedoch; Ich bevorzuge die Verwendung von wp-cli, nachdem ich die Mail-Einstellungen in postfix und (für nginx) php-fpm config korrekt festgelegt und eine crontab wie z
*/5 * * * * wp cron event list --skip-plugins --skip-themes --path="/var/www/vhosts/example.com/httpdocs/wp" --fields=hook,next_run_relative --format=csv | awk -F, '$2=="now" {print $1}' | xargs -r wp --path="/var/www/vhosts/example.com/httpdocs/wp" cron event run $1
(Listen Sie alle Crones mit bestimmten Feldern im CSV-Format auf - Hook ist der Name des Cron, der nächste relative Lauf ist die Zeit. Entfernen Sie diejenigen, die "jetzt" als nächsten Lauf (die jetzt fällig sind) mit AWK anzeigen, und übergeben Sie diese Liste an xargs an Rufen Sie wp cron event run $HOOK
jedes Cron auf.) Wenn Sie wp-cli verwenden, wird WordPress korrekt geladen. (Ich überspringe Plugins, wenn ich die Cron aufführe, da Code-Erros und PHP-Warnungen die Skriptausgabe vermasseln, aber nicht überspringen, wenn das Cron mit xargs ausgeführt wird Für den Cron müssen möglicherweise die Plugins geladen werden.
Ich hoffe, dies gibt Ihnen einige Hinweise, worauf Sie achten müssen.
wget http://YOUR_SITE_URL/wp-cron.php
ohne Erwähnung mit Erwähnungen verknüpft haben.?doing_wp_cron
Ist also eine besser als die andere? Was macht das Hinzufügen von?doing_wp_cron
, was die Nicht-Version nicht tut?