Title: _wp_cron
Published: March 9, 2021
Last modified: February 24, 2026

---

# _wp_cron(): int|false

## In this article

 * [Description](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#description)
 * [Return](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#wp--skip-link--target)

This function’s access is marked private. This means it is not intended for use 
by plugin or theme developers, only by core. It is listed here for completeness.

Runs scheduled callbacks or spawns cron for all scheduled events.

## 󠀁[Description](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#description)󠁿

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](https://www.php.net/manual/en/language.types.boolean.php/).
Use the `===` operator for testing the return value of this function.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#return)󠁿

 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.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#source)󠁿

    ```php
    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 );
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/cron.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/cron.php#L1018)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/cron.php#L1018-L1062)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_get_ready_cron_jobs()](https://developer.wordpress.org/reference/functions/wp_get_ready_cron_jobs/)`wp-includes/cron.php` |

Retrieves cron jobs ready to be run.

  | 
| [wp_get_schedules()](https://developer.wordpress.org/reference/functions/wp_get_schedules/)`wp-includes/cron.php` |

Retrieves supported event recurrence schedules.

  | 
| [spawn_cron()](https://developer.wordpress.org/reference/functions/spawn_cron/)`wp-includes/cron.php` |

Sends a request to run cron through HTTP request that doesn’t halt page loading.

  |

| Used by | Description | 
| [wp_cron()](https://developer.wordpress.org/reference/functions/wp_cron/)`wp-includes/cron.php` |

Registers [_wp_cron()](https://developer.wordpress.org/reference/functions/_wp_cron/) to run on the [‘shutdown’](https://developer.wordpress.org/reference/hooks/shutdown/) action.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/_wp_cron/?output_format=md#changelog)󠁿

| Version | Description | 
| [5.7.0](https://developer.wordpress.org/reference/since/5.7.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2F_wp_cron%2F)
before being able to contribute a note or feedback.