X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/76aea3697c6043c1613370f172395b4f65ee71f0..refs/tags/wordpress-2.9:/wp-cron.php diff --git a/wp-cron.php b/wp-cron.php index efd66c68..4f3335b4 100644 --- a/wp-cron.php +++ b/wp-cron.php @@ -11,43 +11,50 @@ ignore_user_abort(true); +if ( !empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON') ) + die(); + /** * Tell WordPress we are doing the CRON task. * * @var bool */ define('DOING_CRON', true); -/** Setup WordPress environment */ -require_once('./wp-load.php'); -if ( $_GET['check'] != wp_hash('187425') ) - exit; +if ( !defined('ABSPATH') ) { + /** Setup WordPress environment */ + require_once('./wp-load.php'); +} -if ( get_option('doing_cron') > time() ) - exit; +if ( false === $crons = _get_cron_array() ) + die(); -update_option('doing_cron', time() + 30); +$keys = array_keys( $crons ); +$local_time = time(); -$crons = _get_cron_array(); -$keys = array_keys($crons); -if (!is_array($crons) || $keys[0] > time()) - return; +if ( isset($keys[0]) && $keys[0] > $local_time ) + die(); foreach ($crons as $timestamp => $cronhooks) { - if ($timestamp > time()) break; + if ( $timestamp > $local_time ) + break; + foreach ($cronhooks as $hook => $keys) { - foreach ($keys as $key => $args) { - $schedule = $args['schedule']; + + foreach ($keys as $k => $v) { + + $schedule = $v['schedule']; + if ($schedule != false) { - $new_args = array($timestamp, $schedule, $hook, $args['args']); + $new_args = array($timestamp, $schedule, $hook, $v['args']); call_user_func_array('wp_reschedule_event', $new_args); } - wp_unschedule_event($timestamp, $hook, $args['args']); - do_action_ref_array($hook, $args['args']); + + wp_unschedule_event($timestamp, $hook, $v['args']); + + do_action_ref_array($hook, $v['args']); } } } -update_option('doing_cron', 0); - -?> \ No newline at end of file +die();