_wp_remove_unregistered_widgets()
云策文档标注
概述
_wp_remove_unregistered_widgets() 函数用于比较侧边栏及其小部件列表与允许的小部件ID列表,过滤掉未注册的小部件。它接受侧边栏小部件数组和可选允许ID数组作为参数,返回仅包含允许小部件的侧边栏数组。
关键要点
- 函数比较侧边栏小部件实例ID与允许的小部件ID列表,移除未注册的小部件。
- 参数 $sidebars_widgets 是必需的侧边栏和小部件实例ID数组;$allowed_widget_ids 是可选的允许小部件ID数组,默认为已注册小部件的键。
- 返回值为过滤后的侧边栏数组,仅包含允许的小部件。
- 该函数在 WordPress 4.9.0 版本中引入,用于确保侧边栏小部件的有效性。
代码示例
function _wp_remove_unregistered_widgets( $sidebars_widgets, $allowed_widget_ids = array() ) {
if ( empty( $allowed_widget_ids ) ) {
$allowed_widget_ids = array_keys( $GLOBALS['wp_registered_widgets'] );
}
foreach ( $sidebars_widgets as $sidebar => $widgets ) {
if ( is_array( $widgets ) ) {
$sidebars_widgets[ $sidebar ] = array_intersect( $widgets, $allowed_widget_ids );
}
}
return $sidebars_widgets;
}
原文内容
Compares a list of sidebars with their widgets against an allowed list.
Parameters
$sidebars_widgetsarrayrequired-
List of sidebars and their widget instance IDs.
$allowed_widget_idsarrayoptional-
List of widget IDs to compare against. Default: Registered widgets.
Default:
array()
Source
function _wp_remove_unregistered_widgets( $sidebars_widgets, $allowed_widget_ids = array() ) {
if ( empty( $allowed_widget_ids ) ) {
$allowed_widget_ids = array_keys( $GLOBALS['wp_registered_widgets'] );
}
foreach ( $sidebars_widgets as $sidebar => $widgets ) {
if ( is_array( $widgets ) ) {
$sidebars_widgets[ $sidebar ] = array_intersect( $widgets, $allowed_widget_ids );
}
}
return $sidebars_widgets;
}
Changelog
| Version | Description |
|---|---|
| 4.9.0 | Introduced. |