next_widget_id_number()
云策文档标注
概述
next_widget_id_number() 是一个 WordPress 函数,用于生成下一个可用的 widget ID 编号。它基于给定的 ID 基础字符串,遍历已注册的 widgets 来查找最大编号,并返回递增后的值。
关键要点
- 函数参数:$id_base(字符串,必需),作为 widget ID 的基础部分。
- 返回值:整数,表示下一个可用的 widget ID 编号。
- 内部逻辑:通过正则表达式匹配已注册 widgets 的 ID,提取并比较编号,返回最大编号加一。
- 相关函数:在 WP_REST_Widgets_Controller::save_widget()、wp_list_widgets() 和 WP_Customize_Widgets::get_available_widgets() 中被使用。
代码示例
function next_widget_id_number( $id_base ) {
global $wp_registered_widgets;
$number = 1;
foreach ( $wp_registered_widgets as $widget_id => $widget ) {
if ( preg_match( '/' . preg_quote( $id_base, '/' ) . '-([0-9]+)$/', $widget_id, $matches ) ) {
$number = max( $number, $matches[1] );
}
}
++$number;
return $number;
}
原文内容
Parameters
$id_basestringrequired
Source
function next_widget_id_number( $id_base ) {
global $wp_registered_widgets;
$number = 1;
foreach ( $wp_registered_widgets as $widget_id => $widget ) {
if ( preg_match( '/' . preg_quote( $id_base, '/' ) . '-([0-9]+)$/', $widget_id, $matches ) ) {
$number = max( $number, $matches[1] );
}
}
++$number;
return $number;
}