Wordpress cron 又名时间表?

Wordpress cron aka schedule?

register_activation_hook(__FILE__, 'cron_post_activation');
add_action('post_event', 'cron_post');
function cron_post_activation() {
    wp_schedule_event(time(), 'hourly', 'post_event');
}

function cron_post() {
 //Do stuff
}

这在默认情况下不起作用 - 很难找到!

经过几个小时的调试后,我偶然发现了几个声称您需要向 wp-config.php:

添加下一行的帖子
define('DISABLE_WP_CRON', true);

1) 这背后的逻辑是什么? 禁用某些东西以使其工作对我来说没有意义。

2) 如何设置您自己的间隔? 文档说明您只能使用 'hourly'、'twicedaily' 和 'daily' .

是的,您确实需要禁用 WP_CRON,但是,您还需要在 WordPress 之外设置自己的 cron 作业以触发该事件。默认情况下,WP 的 cron 功能仅在有人查看该站点时启动,即使这样也不能保证它会 运行 准时。如果您需要在特定时间或间隔发生某些事情,它根本没有用。

假设您在 *nix 服务器上,我找到的关于如何执行此操作的最佳解释是:

http://bitswapping.com/2010/10/using-cron-to-trigger-wp-cron-php/

其要点是您关闭 WordPress 触发其自身调度程序的方式,然后根据您使用服务器上的 cron 程序设置的时间表直接访问该系统。它所做的是设置一个准系统 WP 环境,在该环境中执行任务而不发送任何 HTML 返回。如果您将作业设置为每分钟访问一次,这会比直接 ping 您的网站主页获得更好的性能。

关于 "turning it off to make it work" - 是的,这似乎违反直觉。您实际上关闭的是检查是否执行 cron 任务的系统。通过关闭它,您实质上是在为该系统构建一个直接管道,并告诉它每次都做这项工作,只要您告诉它。您正在消除系统的差异。