wp_cron()

Registers _wp_cron() to run on the {@see ‘wp_loaded’} action.


Description

If the ‘wp_loaded’ action has already fired, this function calls _wp_cron() directly.

Warning: This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. For information about casting to booleans see the PHP documentation. Use the === operator for testing the return value of this function.


Return

(bool|int|void) On success an integer indicating number of events spawned (0 indicates no events needed to be spawned), false if spawning fails for one or more events or void if the function registered _wp_cron() to run on the action.


Source

File: wp-includes/cron.php

function wp_cron() {
	// Prevent infinite loops caused by lack of wp-cron.php
	if ( strpos($_SERVER['REQUEST_URI'], '/wp-cron.php') !== false || ( defined('DISABLE_WP_CRON') && DISABLE_WP_CRON ) )
		return;

	if ( false === $crons = _get_cron_array() )
		return;

	$gmt_time = microtime( true );
	$keys = array_keys( $crons );
	if ( isset($keys[0]) && $keys[0] > $gmt_time )
		return;

	$schedules = wp_get_schedules();
	foreach ( $crons as $timestamp => $cronhooks ) {
		if ( $timestamp > $gmt_time ) break;
		foreach ( (array) $cronhooks as $hook => $args ) {
			if ( isset($schedules[$hook]['callback']) && !call_user_func( $schedules[$hook]['callback'] ) )
				continue;
			spawn_cron( $gmt_time );
			break 2;
		}
	}
}


Changelog

Changelog
Version Description
5.7.0 Functionality moved to _wp_cron() to which this becomes a wrapper.
5.1.0 Return value added to indicate success or failure.
2.1.0 Introduced.