如果插件或主题想在呈现侧边栏之前做些什么,那么这个操作就是存在的。您要查找的代码位于widgets.php
, 在行动之前和之后:
$callback = $wp_registered_widgets[$id][\'callback\'];
do_action( \'dynamic_sidebar\', $wp_registered_widgets[$id] );
if ( is_callable($callback) ) {
call_user_func_array($callback, $params);
$did_one = true;
}
在wp\\u register\\u sidebar\\u widget()函数中,您可以看到
$wp_registered_widgets[$id]
获取设置为有关小部件的信息数组,包括显示/输出回调:
$widget = array(
\'name\' => $name,
\'id\' => $id,
\'callback\' => $output_callback,
\'params\' => array_slice(func_get_args(), 4)
);
$widget = array_merge($widget, $options);
if ( is_callable($output_callback) && ( !isset($wp_registered_widgets[$id]) || did_action( \'widgets_init\' ) ) ) {
do_action( \'wp_register_sidebar_widget\', $widget );
$wp_registered_widgets[$id] = $widget;
}