显示可用小组件的列表。

原型

wp_list_widgets()

源文件

路径:wp-admin/includes/widgets.php

<?php
...
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 );
	}
}
...
?>

其他

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