Files
WordPress/wp-cron.php
T

61 lines
1.2 KiB
PHP
Raw Normal View History

2006-03-07 21:43:59 +00:00
<?php
/**
* WordPress Cron Implementation for hosts, which do not offer CRON or for which
* the user has not set up a CRON job pointing to this file.
*
* The HTTP request to this file will not slow down the visitor who happens to
* visit when the cron job is needed to run.
*
* @package WordPress
*/
2006-03-07 21:43:59 +00:00
ignore_user_abort(true);
2009-02-07 13:32:34 +00:00
if ( !empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON') )
die();
/**
* Tell WordPress we are doing the CRON task.
*
* @var bool
*/
define('DOING_CRON', true);
2006-03-07 21:43:59 +00:00
2009-02-07 13:32:34 +00:00
if ( !defined('ABSPATH') ) {
/** Set up WordPress environment */
2009-02-07 13:32:34 +00:00
require_once('./wp-load.php');
}
if ( false === $crons = _get_cron_array() )
die();
2006-11-21 02:48:12 +00:00
2008-09-18 07:09:38 +00:00
$keys = array_keys( $crons );
2009-02-07 13:32:34 +00:00
$local_time = time();
2008-09-18 07:09:38 +00:00
2009-02-07 13:32:34 +00:00
if ( isset($keys[0]) && $keys[0] > $local_time )
die();
2008-09-18 07:09:38 +00:00
foreach ($crons as $timestamp => $cronhooks) {
2008-09-18 07:09:38 +00:00
if ( $timestamp > $local_time )
break;
foreach ($cronhooks as $hook => $keys) {
2008-09-18 07:09:38 +00:00
foreach ($keys as $k => $v) {
$schedule = $v['schedule'];
if ($schedule != false) {
2008-09-18 07:09:38 +00:00
$new_args = array($timestamp, $schedule, $hook, $v['args']);
2006-09-14 00:18:05 +00:00
call_user_func_array('wp_reschedule_event', $new_args);
}
2008-09-18 07:09:38 +00:00
wp_unschedule_event($timestamp, $hook, $v['args']);
do_action_ref_array($hook, $v['args']);
2006-03-07 21:43:59 +00:00
}
}
}
2006-11-21 02:48:12 +00:00
2008-09-18 07:09:38 +00:00
die();