wp/wp-includes/rest-api/endpoints/class-wp-rest-template-revisions-controller.php
changeset 22 8c2e4d02f4ef
parent 21 48c4eec2b7e6
--- 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();