wpseek.com
A WordPress-centric search engine for devs and theme authors



_wp_cron › WordPress Function

Since5.7.0
Deprecatedn/a
_wp_cron ( No parameters )
Access:
  • private
Returns:
  • (int|false) 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.
Defined at:
Codex:

Runs scheduled callbacks or spawns cron for all scheduled events.

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 {@link PHP documentation}. Use the === operator for testing the return value of this function.


Source

function _wp_cron() {
	// Prevent infinite loops caused by lack of wp-cron.php.
	if ( str_contains( $_SERVER['REQUEST_URI'], '/wp-cron.php' )
		|| ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON )
	) {
		return 0;
	}

	$crons = wp_get_ready_cron_jobs();
	if ( empty( $crons ) ) {
		return 0;
	}

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

	$schedules = wp_get_schedules();
	$results   = array();

	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;
			}

			$results[] = spawn_cron( $gmt_time );
			break 2;
		}
	}

	if ( in_array( false, $results, true ) ) {
		return false;
	}

	return count( $results );
}