将侧边栏列表与其小部件与白名单进行比较。

原型

_wp_remove_unregistered_widgets( array $sidebars_widgets, array $whitelist = array() )

参数

$sidebars_widgets (array) (Required) 侧栏列表及其窗口小部件实例ID。

$whitelist (array) (Optional)  要比较的窗口小部件ID列表。默认值:已注册的小部件。

返回值

(array)  带有白名单小部件的侧边栏。

源文件

路径:wp-includes/widgets.php

<?php
...
function _wp_remove_unregistered_widgets( $sidebars_widgets, $whitelist = array() ) {
	if ( empty( $whitelist ) ) {
		$whitelist = array_keys( $GLOBALS['wp_registered_widgets'] );
	}
	foreach ( $sidebars_widgets as $sidebar => $widgets ) {
		if ( is_array( $widgets ) ) {
			$sidebars_widgets[ $sidebar ] = array_intersect( $widgets, $whitelist );
		}
	}
	return $sidebars_widgets;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/_wp_remove_unregistered_widgets/