WP Cron函数实际上不是Cron函数。它不是一个严格按计划运行和执行任务的cron,而是等待前端或管理员加载,检查是否计划了任何作业,然后根据需要激发。要执行cron作业,请加载WPwp-cron.php
, 位于根文件夹中。我的理解是,当您访问该站点并计划cron时,会向http://yourdomain.com/wp-cron.php
, 它将启动计划的cron作业。我不知道这是如何工作的(我以前读过,但无法再次找到资源),但这个请求是以一种并非所有服务器都能处理的方式发出的,导致它无法工作。我想知道您的问题是否是此请求不是通过对您的站点的GET请求发出的。
作为替代方案,我建议使用GET请求http://yourdomain.com/wp-cron.php
. 事实上Professional WordPress Plugin Development, 他们建议:
常用的方法是使用wget加载wp cron。php的时间表。如果您的服务器是基于Linux的,那么cron将已经存在,并且可以使用crontab命令进行调度。如果您的服务器基于Windows,则可以安装wget并创建计划任务来执行它。wget命令的工作方式如下:wgethttp://www.example.com/wp-cron.php 当wget请求wp cron时。php WordPress查找所有计划的cron作业,并根据需要执行。在您的服务器上设置true cron将保证您的cron作业将按计划完美运行,而不会错过任何节拍。
除此之外,您还需要禁用处理cron的默认方式:
define(‘DISABLE_WP_CRON’, true);
关于这一点的另一个讨论可以在这里找到:
http://caramboo.com/2010/03/wordpress-remote-cron-scheduling/