函数文档

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

Return

int

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