diff -r 490d5cc509ed -r cf61fcea0001 wp/wp-includes/customize/class-wp-widget-form-customize-control.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wp/wp-includes/customize/class-wp-widget-form-customize-control.php Mon Oct 14 17:39:30 2019 +0200 @@ -0,0 +1,80 @@ +json[ $key ] = $this->$key; + } + + // Get the widget_control and widget_content. + require_once ABSPATH . '/wp-admin/includes/widgets.php'; + + $widget = $wp_registered_widgets[ $this->widget_id ]; + if ( ! isset( $widget['params'][0] ) ) { + $widget['params'][0] = array(); + } + + $args = array( + 'widget_id' => $widget['id'], + 'widget_name' => $widget['name'], + ); + + $args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) ); + $widget_control_parts = $this->manager->widgets->get_widget_control_parts( $args ); + + $this->json['widget_control'] = $widget_control_parts['control']; + $this->json['widget_content'] = $widget_control_parts['content']; + } + + /** + * Override render_content to be no-op since content is exported via to_json for deferred embedding. + * + * @since 3.9.0 + */ + public function render_content() {} + + /** + * Whether the current widget is rendered on the page. + * + * @since 4.0.0 + * + * @return bool Whether the widget is rendered. + */ + public function active_callback() { + return $this->manager->widgets->is_widget_rendered( $this->widget_id ); + } +}