如前所述,WP-Cron 并非持续运行,如果存在必须在特定时间运行的关键任务,这可能会成为一个问题。对此有一个简单的解决方案。只需将系统的任务调度器设置为在您期望的间隔(或特定需要的时间)运行即可。最简单的解决方案是使用工具向 wp-cron.php 文件发起 Web 请求。
在系统上安排任务后,还有一个步骤需要完成。WordPress 将继续在每个页面加载时运行 WP-Cron。这已不再必要,并且会增加服务器的额外资源使用量。可以在 wp-config.php 文件中禁用 WP-Cron。打开 wp-config.php 文件进行编辑并添加以下行:
define( 'DISABLE_WP_CRON', true );Windows
Windows 将其基于时间的调度系统称为任务计划程序 (Task Scheduler)。可以通过控制面板中的管理工具访问它。
设置任务的方法因服务器配置而异。一种方法是使用 PowerShell 和基本任务 (Basic Task)。创建基本任务后,可以使用以下命令调用 WordPress Cron 脚本。
powershell "Invoke-WebRequest http://YOUR_SITE_URL/wp-cron.php"MacOS 和 Linux
Mac OS X 和 Linux 都使用 cron 作为其基于时间的调度系统。通常通过终端使用 crontab -e 命令访问它。需要注意的是,任务将以常规用户或 root 身份运行,具体取决于运行命令的系统用户。
Cron 具有需要遵循的特定语法,包含以下部分:
- 分钟
- 小时
- 月份中的日期
- 月份
- 星期几
- 要执行的命令

如果无论时间部分如何都应运行命令,则应使用星号 (*)。例如,如果您希望无论小时、日期还是月份如何,每 15 分钟运行一次命令,它将看起来像:
*/15 * * * * command许多服务器都安装了 wget,这是一个调用 WordPress Cron 脚本的简单工具。
wget --delete-after http://YOUR_SITE_URL/wp-cron.php注意:如果没有 –delete-after 选项,wget 将保存 HTTP GET 请求的输出。每天在午夜触发一次对您的网站 WordPress Cron 的调用可能类似于:
0 0 * * * wget --delete-after http://YOUR_SITE_URL/wp-cron.php