mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-28 03:57:46 +01:00
5ac76255a9
Updates the npm packages and code for: * [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list] * [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.] * [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies] * [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.] * [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field] * [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs] * [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images] * [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image] * [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon] * [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818]. References: * [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits Follow-up to [56818], [56816]. Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya. See #59583, #59411. Built from https://develop.svn.wordpress.org/trunk@56849 git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
55 lines
1.4 KiB
PHP
55 lines
1.4 KiB
PHP
<?php
|
|
/**
|
|
* Server-side rendering of the `core/pattern` block.
|
|
*
|
|
* @package WordPress
|
|
*/
|
|
|
|
/**
|
|
* Registers the `core/pattern` block on the server.
|
|
*/
|
|
function register_block_core_pattern() {
|
|
register_block_type_from_metadata(
|
|
__DIR__ . '/pattern',
|
|
array(
|
|
'render_callback' => 'render_block_core_pattern',
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Renders the `core/pattern` block on the server.
|
|
*
|
|
* @since 6.3.0 Backwards compatibility: blocks with no `syncStatus` attribute do not receive block wrapper.
|
|
*
|
|
* @param array $attributes Block attributes.
|
|
*
|
|
* @return string Returns the output of the pattern.
|
|
*/
|
|
function render_block_core_pattern( $attributes ) {
|
|
if ( empty( $attributes['slug'] ) ) {
|
|
return '';
|
|
}
|
|
|
|
$slug = $attributes['slug'];
|
|
$registry = WP_Block_Patterns_Registry::get_instance();
|
|
|
|
if ( ! $registry->is_registered( $slug ) ) {
|
|
return '';
|
|
}
|
|
|
|
$pattern = $registry->get_registered( $slug );
|
|
$content = $pattern['content'];
|
|
|
|
// Backward compatibility for handling Block Hooks and injecting the theme attribute in the Gutenberg plugin.
|
|
// This can be removed when the minimum supported WordPress is >= 6.4.
|
|
if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && ! function_exists( 'traverse_and_serialize_blocks' ) ) {
|
|
$blocks = parse_blocks( $content );
|
|
$content = gutenberg_serialize_blocks( $blocks );
|
|
}
|
|
|
|
return do_blocks( $content );
|
|
}
|
|
|
|
add_action( 'init', 'register_block_core_pattern' );
|