diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php --- a/wp/wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php Fri Sep 05 18:40:08 2025 +0200 @@ -715,7 +715,7 @@ if ( ! empty( $widget_object->widget_options['show_instance_in_rest'] ) ) { // Use new stdClass so that JSON result is {} and not []. - $prepared['instance']['raw'] = empty( $instance ) ? new stdClass : $instance; + $prepared['instance']['raw'] = empty( $instance ) ? new stdClass() : $instance; } } } @@ -726,7 +726,9 @@ $response = rest_ensure_response( $prepared ); - $response->add_links( $this->prepare_links( $prepared ) ); + if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { + $response->add_links( $this->prepare_links( $prepared ) ); + } /** * Filters the REST API response for a widget. @@ -859,9 +861,9 @@ 'type' => 'string', 'context' => array(), 'arg_options' => array( - 'sanitize_callback' => static function( $string ) { + 'sanitize_callback' => static function ( $form_data ) { $array = array(); - wp_parse_str( $string, $array ); + wp_parse_str( $form_data, $array ); return $array; }, ),