diff options
author | Ella <ellatrix@git.wordpress.org> | 2024-06-03 18:30:02 +0000 |
---|---|---|
committer | Ella <ellatrix@git.wordpress.org> | 2024-06-03 18:30:02 +0000 |
commit | 06914f5ca6de83bab6dbb259283af63dcefaa9ff (patch) | |
tree | 861549619bdf330399fa29fa3e9b750d545b064a /src/wp-includes/rest-api/endpoints/class-wp-rest-block-patterns-controller.php | |
parent | 94a0485a5e8571be65b3bb25892d5488f1d1e22b (diff) | |
download | wordpress-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.php | 6 |
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', |