WordPress Version: 3.7
/**
* WordPress Widgets Administration API
*
* @package WordPress
* @subpackage Administration
*/
/**
* Display list of the available widgets.
*
* @since 2.5.0
*/
function wp_list_widgets()
{
global $wp_registered_widgets, $sidebars_widgets, $wp_registered_widget_controls;
$sort = $wp_registered_widgets;
usort($sort, '_sort_name_callback');
$done = array();
foreach ($sort as $widget) {
if (in_array($widget['callback'], $done, true)) {
// We already showed this multi-widget
continue;
}
$sidebar = is_active_widget($widget['callback'], $widget['id'], false, false);
$done[] = $widget['callback'];
if (!isset($widget['params'][0])) {
$widget['params'][0] = array();
}
$args = array('widget_id' => $widget['id'], 'widget_name' => $widget['name'], '_display' => 'template');
if (isset($wp_registered_widget_controls[$widget['id']]['id_base']) && isset($widget['params'][0]['number'])) {
$id_base = $wp_registered_widget_controls[$widget['id']]['id_base'];
$args['_temp_id'] = "{$id_base}-__i__";
$args['_multi_num'] = next_widget_id_number($id_base);
$args['_add'] = 'multi';
} else {
$args['_add'] = 'single';
if ($sidebar) {
$args['_hide'] = '1';
}
}
$args = wp_list_widget_controls_dynamic_sidebar(array(0 => $args, 1 => $widget['params'][0]));
call_user_func_array('wp_widget_control', $args);
}
}