_wp_cron

函数
_wp_cron ( No parameters )
Access
Private
返回值
  • (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.
定义位置
相关方法
wp_cronwp_clonewp_randwp_doing_cronspawn_cron
引入
5.7.0
弃用
-

_wp_cron: 这是一个用来触发WordPress中计划事件的函数: 当你安排一个任务在一个特定的时间运行时,它就会被添加到一个由WP-Cron系统执行的事件队列中。WP-Cron使用WordPress的数据库来存储预定事件的列表,并在必要时运行它们。_wp_cron检查预定事件的列表并根据需要触发它们。

运行预定的回调或为所有预定的事件生成cron。

警告: 这个函数可能会返回布尔值FALSE,但也可能会返回一个非布尔值,该值会被评估为FALSE。关于向布尔值转换的信息请参见{@link PHP documentation}。使用`===`操作符来测试此函数的返回值。

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

常见问题

FAQs
查看更多 >