_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() .
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. |