summaryrefslogtreecommitdiffstatshomepage
path: root/src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php
diff options
context:
space:
mode:
authorElla <ellatrix@git.wordpress.org>2024-06-03 18:30:02 +0000
committerElla <ellatrix@git.wordpress.org>2024-06-03 18:30:02 +0000
commit06914f5ca6de83bab6dbb259283af63dcefaa9ff (patch)
tree861549619bdf330399fa29fa3e9b750d545b064a /src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php
parent94a0485a5e8571be65b3bb25892d5488f1d1e22b (diff)
downloadwordpress-06914f5ca6de83bab6dbb259283af63dcefaa9ff.tar.gz
wordpress-06914f5ca6de83bab6dbb259283af63dcefaa9ff.zip
Editor: resolve patterns server side.
See https://github.com/WordPress/gutenberg/pull/60349. See https://github.com/WordPress/gutenberg/pull/61757. See https://github.com/WordPress/wordpress-develop/pull/6673. Fixes #61228. Props ellatrix, antonvlasenko. git-svn-id: https://develop.svn.wordpress.org/trunk@58303 602fd350-edb4-49c9-b593-d223f7449a82
Diffstat (limited to 'src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php')
-rw-r--r--src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php
index d8f083924e..c98b2a7c57 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php
@@ -162,6 +162,12 @@ class WP_REST_Block_Patterns_Controller extends WP_REST_Controller {
* @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
*/
public function prepare_item_for_response( $item, $request ) {
+ // Resolve pattern blocks so they don't need to be resolved client-side
+ // in the editor, improving performance.
+ $blocks = parse_blocks( $item['content'] );
+ $blocks = resolve_pattern_blocks( $blocks );
+ $item['content'] = serialize_blocks( $blocks );
+
$fields = $this->get_fields_for_response( $request );
$keys = array(
'name' => 'name',