From a999c947ec50511b6e7aca987a81337a5b5e8743 Mon Sep 17 00:00:00 2001 From: Karthik Thayyil Date: Mon, 29 Jan 2024 16:24:56 +0000 Subject: [PATCH 1/2] temp cache implementation --- src/wp-includes/class-wp-block-patterns-registry.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/class-wp-block-patterns-registry.php b/src/wp-includes/class-wp-block-patterns-registry.php index 0a4ae6fc9ccd6..3e5a9900b49ee 100644 --- a/src/wp-includes/class-wp-block-patterns-registry.php +++ b/src/wp-includes/class-wp-block-patterns-registry.php @@ -200,7 +200,14 @@ public function get_registered( $pattern_name ) { $this->registered_patterns[ $pattern_name ]['content'] = $pattern['content']; } - $pattern['content'] = $this->prepare_content( $pattern, get_hooked_blocks() ); + $hooked_blocks = get_hooked_blocks(); + $key = 'block_pattern_' . md5( serialize( $pattern ) . serialize( $hooked_blocks ) ); + $prepared_content = wp_cache_get( $key, '', false, $found ); + if ( ! $found ) { + $prepared_content = $this->prepare_content( $pattern, get_hooked_blocks() ); + wp_cache_set( $key, $prepared_content ); + } + $pattern['content'] = $prepared_content; return $pattern; } From 29e569a7291699dd9669a2ab600a2639596856ec Mon Sep 17 00:00:00 2001 From: Karthik Thayyil Date: Mon, 29 Jan 2024 16:59:25 +0000 Subject: [PATCH 2/2] cache using pattern name --- .../class-wp-block-patterns-registry.php | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/wp-includes/class-wp-block-patterns-registry.php b/src/wp-includes/class-wp-block-patterns-registry.php index 3e5a9900b49ee..3b835c695e201 100644 --- a/src/wp-includes/class-wp-block-patterns-registry.php +++ b/src/wp-includes/class-wp-block-patterns-registry.php @@ -192,6 +192,12 @@ public function get_registered( $pattern_name ) { return null; } + $key = 'registered_block_pattern_' . $pattern_name; + $cached_pattern = wp_cache_get( $key, '', false, $found ); + if ( $found ) { + return $cached_pattern; + } + $pattern = $this->registered_patterns[ $pattern_name ]; if ( ! isset( $pattern['content'] ) && isset( $pattern['file_path'] ) ) { ob_start(); @@ -199,16 +205,9 @@ public function get_registered( $pattern_name ) { $pattern['content'] = ob_get_clean(); $this->registered_patterns[ $pattern_name ]['content'] = $pattern['content']; } + $pattern['content'] = $this->prepare_content( $pattern, get_hooked_blocks() ); - $hooked_blocks = get_hooked_blocks(); - $key = 'block_pattern_' . md5( serialize( $pattern ) . serialize( $hooked_blocks ) ); - $prepared_content = wp_cache_get( $key, '', false, $found ); - if ( ! $found ) { - $prepared_content = $this->prepare_content( $pattern, get_hooked_blocks() ); - wp_cache_set( $key, $prepared_content ); - } - $pattern['content'] = $prepared_content; - + wp_cache_set( $key, $pattern ); return $pattern; } @@ -238,6 +237,14 @@ public function get_all_registered( $outside_init_only = false ) { } continue; } + + $key = 'registered_block_pattern_' . $index; + $cached_pattern = wp_cache_get( $key, '', false, $found ); + if ( $found ) { + $patterns[ $index ] = $cached_pattern; + continue; + } + if ( ! isset( $pattern['content'] ) && isset( $pattern['file_path'] ) ) { ob_start(); include $pattern['file_path']; @@ -249,6 +256,8 @@ public function get_all_registered( $outside_init_only = false ) { } } $patterns[ $index ]['content'] = $this->prepare_content( $pattern, $hooked_blocks ); + + wp_cache_set( $key, $patterns[ $index ] ); } return $patterns; }