From f4696fe7df8da06d1d67418252bdbe40a6339c56 Mon Sep 17 00:00:00 2001 From: ramon Date: Mon, 14 Aug 2023 11:01:24 +1000 Subject: [PATCH] Moving get_items() method from Gutenberg_REST_Block_Patterns_Controller_6_2 to Gutenberg_REST_Block_Patterns_Controller_6_3 because the following methods were updated in 6.3: - gutenberg_load_remote_block_patterns - gutenberg_load_remote_featured_patterns - gutenberg_register_remote_theme_patterns --- ...erg-rest-block-patterns-controller-6-3.php | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php b/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php index a64724ff858c2..601c6239f7071 100644 --- a/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php +++ b/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php @@ -158,4 +158,33 @@ public function get_item_schema() { return $this->add_additional_fields_schema( $this->schema ); } + + /** + * Retrieves all block patterns. + * + * @since 6.0.0 + * @since 6.2.0 Added migration for old core pattern categories to the new ones. + * + * @param WP_REST_Request $request Full details about the request. + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. + */ + public function get_items( $request ) { + if ( ! $this->remote_patterns_loaded ) { + // Load block patterns from w.org. + gutenberg_load_remote_block_patterns(); // Patterns with the `core` keyword. + gutenberg_load_remote_featured_patterns(); // Patterns in the `featured` category. + gutenberg_register_remote_theme_patterns(); // Patterns requested by current theme. + + $this->remote_patterns_loaded = true; + } + + $response = array(); + $patterns = WP_Block_Patterns_Registry::get_instance()->get_all_registered(); + foreach ( $patterns as $pattern ) { + $migrated_pattern = $this->migrate_pattern_categories( $pattern ); + $prepared_pattern = $this->prepare_item_for_response( $migrated_pattern, $request ); + $response[] = $this->prepare_response_for_collection( $prepared_pattern ); + } + return rest_ensure_response( $response ); + } }