--- a/wp/wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php Fri Sep 05 18:40:08 2025 +0200
+++ b/wp/wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php Fri Sep 05 18:52:52 2025 +0200
@@ -133,9 +133,14 @@
* @since 5.8.0
*
* @param WP_REST_Request $request Full details about the request.
- * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ * @return WP_REST_Response Response object.
*/
public function get_items( $request ) {
+ if ( $request->is_method( 'HEAD' ) ) {
+ // Return early as this handler doesn't add any response headers.
+ return new WP_REST_Response( array() );
+ }
+
$this->retrieve_widgets();
$prepared = array();
@@ -677,7 +682,13 @@
);
}
- $widget = $wp_registered_widgets[ $widget_id ];
+ $widget = $wp_registered_widgets[ $widget_id ];
+ // Don't prepare the response body for HEAD requests.
+ if ( $request->is_method( 'HEAD' ) ) {
+ /** This filter is documented in wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php */
+ return apply_filters( 'rest_prepare_widget', new WP_REST_Response( array() ), $widget, $request );
+ }
+
$parsed_id = wp_parse_widget_id( $widget_id );
$fields = $this->get_fields_for_response( $request );