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();