diff --git a/wp-cron.php b/wp-cron.php index 45cb9f32fb..36d7662e3e 100644 --- a/wp-cron.php +++ b/wp-cron.php @@ -6,6 +6,11 @@ require_once('wp-config.php'); if ( $_GET['check'] != md5(DB_PASS . '187425') ) exit; +if ( get_option('doing_cron') > time() ) + exit; + +update_option('doing_cron', time() + 30); + $crons = _get_cron_array(); $keys = array_keys($crons); if (!is_array($crons) || $keys[0] > time()) @@ -14,14 +19,17 @@ foreach ($crons as $timestamp => $cronhooks) { if ($timestamp > time()) break; foreach ($cronhooks as $hook => $keys) { foreach ($keys as $key => $args) { - do_action_ref_array($hook, $args['args']); $schedule = $args['schedule']; if ($schedule != false) { $new_args = array($timestamp, $schedule, $hook, $args['args']); call_user_func_array('wp_reschedule_event', $new_args); } wp_unschedule_event($timestamp, $hook, $args['args']); + do_action_ref_array($hook, $args['args']); } } } + +update_option('doing_cron', 0); + ?>