diff -r 48c4eec2b7e6 -r 8c2e4d02f4ef wp/wp-includes/rest-api/endpoints/class-wp-rest-template-revisions-controller.php --- a/wp/wp-includes/rest-api/endpoints/class-wp-rest-template-revisions-controller.php Fri Sep 05 18:40:08 2025 +0200 +++ b/wp/wp-includes/rest-api/endpoints/class-wp-rest-template-revisions-controller.php Fri Sep 05 18:52:52 2025 +0200 @@ -170,7 +170,17 @@ return new WP_Error( 'rest_post_invalid_parent', __( 'Invalid template parent ID.' ), - array( 'status' => 404 ) + array( 'status' => WP_Http::NOT_FOUND ) + ); + } + + $parent_post_id = isset( $template->wp_id ) ? (int) $template->wp_id : 0; + + if ( $parent_post_id <= 0 ) { + return new WP_Error( + 'rest_invalid_template', + __( 'Templates based on theme files can\'t have revisions.' ), + array( 'status' => WP_Http::BAD_REQUEST ) ); } @@ -190,6 +200,11 @@ $template = _build_block_template_result_from_post( $item ); $response = $this->parent_controller->prepare_item_for_response( $template, $request ); + // Don't prepare the response body for HEAD requests. + if ( $request->is_method( 'HEAD' ) ) { + return $response; + } + $fields = $this->get_fields_for_response( $request ); $data = $response->get_data();