函数文档

_upgrade_cron_array()

💡 云策文档标注

概述

_upgrade_cron_array() 是一个 WordPress 内部函数,用于将 cron 信息数组升级到版本 2,确保数据结构的兼容性。

关键要点

  • 函数检查 cron 数组的版本,如果已经是版本 2,则直接返回原数组。
  • 升级过程遍历 cron 数组,为每个事件参数生成 MD5 哈希键,并重构数组结构。
  • 升级后,数组会添加 'version' => 2 键,并通过 update_option() 更新数据库中的 cron 选项。

代码示例

function _upgrade_cron_array( $cron ) {
    if ( isset( $cron['version'] ) && 2 === $cron['version'] ) {
        return $cron;
    }

    $new_cron = array();

    foreach ( (array) $cron as $timestamp => $hooks ) {
        foreach ( (array) $hooks as $hook => $args ) {
            $key = md5( serialize( $args['args'] ) );

            $new_cron[ $timestamp ][ $hook ][ $key ] = $args;
        }
    }

    $new_cron['version'] = 2;

    update_option( 'cron', $new_cron, true );

    return $new_cron;
}

注意事项

  • 此函数是内部函数,通常由 WordPress 核心自动调用,开发者一般无需直接使用。
  • 升级操作会修改数据库中的 cron 选项,确保在调用前备份数据或了解其影响。
  • 函数依赖于 _get_cron_array() 获取 cron 数组,并关联 update_option() 进行持久化存储。

📄 原文内容

Upgrades a cron info array.

Description

This function upgrades the cron info array to version 2.

Parameters

$cronarrayrequired
Cron info array from _get_cron_array() .

Return

array An upgraded cron info array.

Source

function _upgrade_cron_array( $cron ) {
	if ( isset( $cron['version'] ) && 2 === $cron['version'] ) {
		return $cron;
	}

	$new_cron = array();

	foreach ( (array) $cron as $timestamp => $hooks ) {
		foreach ( (array) $hooks as $hook => $args ) {
			$key = md5( serialize( $args['args'] ) );

			$new_cron[ $timestamp ][ $hook ][ $key ] = $args;
		}
	}

	$new_cron['version'] = 2;

	update_option( 'cron', $new_cron, true );

	return $new_cron;
}

Changelog

Version Description
2.1.0 Introduced.