有几个缺点:首先,当使用wp-cron时。php作为cli没有设置$\\u服务器变量等内容。人们通过对wp cron使用curl请求来克服这个限制。而不是php。
其次,因为WP本身没有加载WP cron。php;如果您使用SMTP邮件程序插件,则在调用wp cron时不会加载该插件。同样,使用curl调用可以解决这个问题。卷曲似乎是最常用的方法。
然而在postfix和(对于nginx)php fpm config中正确设置邮件设置并设置crontab(如
*/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
(以csv格式列出具有特定字段的所有cron-hook是cron的名称,next run relative是时间。使用AWK去掉显示“now”作为下一次运行(现在到期)的cron,将该列表传递给xargs以调用
wp cron event run $HOOK
在每个cron上。)使用wp cli可以正确加载WordPress(我选择在列出cron时跳过插件,因为代码错误和php警告会破坏脚本输出;但在使用xargs运行cron时不要跳过插件,因为cron可能需要加载插件)
希望这能为您提供一些注意事项的指导。