wp_list_widgets

The timeline below displays how wordpress function wp_list_widgets has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.4

/**
 * WordPress Widgets Administration API
 *
 * @package WordPress
 * @subpackage Administration
 */
/**
 * Display list of the available widgets.
 *
 * @since 2.5.0
 *
 * @global array $wp_registered_widgets
 * @global array $wp_registered_widget_controls
 */
function wp_list_widgets()
{
    global $wp_registered_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';
            }
        }
        $control_args = array(0 => $args, 1 => $widget['params'][0]);
        $sidebar_args = wp_list_widget_controls_dynamic_sidebar($control_args);
        wp_widget_control(...$sidebar_args);
    }
}

WordPress Version: 5.3

/**
 * WordPress Widgets Administration API
 *
 * @package WordPress
 * @subpackage Administration
 */
/**
 * Display list of the available widgets.
 *
 * @since 2.5.0
 *
 * @global array $wp_registered_widgets
 * @global array $wp_registered_widget_controls
 */
function wp_list_widgets()
{
    global $wp_registered_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';
            }
        }
        $control_args = array(0 => $args, 1 => $widget['params'][0]);
        $sidebar_args = wp_list_widget_controls_dynamic_sidebar($control_args);
        wp_widget_control(...$sidebar_args);
    }
}

WordPress Version: 4.3

/**
 * WordPress Widgets Administration API
 *
 * @package WordPress
 * @subpackage Administration
 */
/**
 * Display list of the available widgets.
 *
 * @since 2.5.0
 *
 * @global array $wp_registered_widgets
 * @global array $wp_registered_widget_controls
 */
function wp_list_widgets()
{
    global $wp_registered_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);
    }
}

WordPress Version: 4.0

/**
 * 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, $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);
    }
}

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