mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-10-03 06:07:00 +00:00
Widgets REST API: Fix non-multi widgets not appearing in wp_inactive_widgets
Registered widgets that do not extend WP_Widget should appear in the wp_inactive_widgets sidebar by default. Having the widgets REST API call retrieve_widgets() before serving any request ensures that this will happen. This is a similar fix to [51235]. Fixes #53534. Props zieladam, timothyblynjacobs. git-svn-id: https://develop.svn.wordpress.org/trunk@51248 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -95,20 +95,14 @@ class WP_Test_REST_Widgets_Controller extends WP_Test_REST_Controller_Testcase {
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
global $wp_registered_widgets, $wp_registered_sidebars, $_wp_sidebars_widgets, $wp_widget_factory;
|
||||
global $wp_widget_factory;
|
||||
|
||||
parent::setUp();
|
||||
|
||||
wp_set_current_user( self::$admin_id );
|
||||
|
||||
// Unregister all widgets and sidebars.
|
||||
$wp_registered_widgets = array();
|
||||
$wp_registered_sidebars = array();
|
||||
$_wp_sidebars_widgets = array();
|
||||
update_option( 'sidebars_widgets', array() );
|
||||
|
||||
// Re-register core widgets.
|
||||
$wp_widget_factory->_register_widgets();
|
||||
wp_widgets_init();
|
||||
|
||||
// Register a non-multi widget for testing.
|
||||
wp_register_widget_control(
|
||||
@@ -149,6 +143,27 @@ class WP_Test_REST_Widgets_Controller extends WP_Test_REST_Controller_Testcase {
|
||||
);
|
||||
}
|
||||
|
||||
public function clean_up_global_scope() {
|
||||
global
|
||||
$wp_widget_factory,
|
||||
$wp_registered_sidebars,
|
||||
$wp_registered_widgets,
|
||||
$wp_registered_widget_controls,
|
||||
$wp_registered_widget_updates,
|
||||
$_wp_sidebars_widgets;
|
||||
|
||||
$wp_registered_sidebars = array();
|
||||
$wp_registered_widgets = array();
|
||||
$wp_registered_widget_controls = array();
|
||||
$wp_registered_widget_updates = array();
|
||||
$wp_widget_factory->widgets = array();
|
||||
$_wp_sidebars_widgets = array();
|
||||
|
||||
update_option( 'sidebars_widgets', array() );
|
||||
|
||||
parent::clean_up_global_scope();
|
||||
}
|
||||
|
||||
private function setup_widget( $id_base, $number, $settings ) {
|
||||
global $wp_widget_factory;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user