mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-29 12:37:57 +01:00
bfbf1bc053
Package updates for bug and regression fixes: - `@wordpress/block-directory: 3.15.8` - `@wordpress/block-editor: 10.0.7` - `@wordpress/block-library: 7.14.8` - `@wordpress/components: 21.0.6` - `@wordpress/customize-widgets: 3.14.8` - `@wordpress/edit-post: 6.14.8` - `@wordpress/edit-site: 4.14.10` - `@wordpress/edit-widgets: 4.14.8` - `@wordpress/editor: 12.16.7` - `@wordpress/format-library: 3.15.7` - `@wordpress/interface: 4.16.6` - `@wordpress/list-reusable-blocks: 3.15.6` - `@wordpress/nux: 5.15.6` - `@wordpress/preferences: 2.9.6` - `@wordpress/reusable-blocks: 3.15.7` - `@wordpress/server-side-render: 3.15.6` - `@wordpress/widgets: 2.15.7` Original PRs from Gutenberg repository: - [https://github.com/WordPress/gutenberg/pull/45041 #45041 Font Size Picker Hint: Fallback to font size `slug` if `name` is undefined] - [https://github.com/WordPress/gutenberg/pull/45045 #45045 Add: Missing output escaping on some blocks] - [https://github.com/WordPress/gutenberg/pull/44999 #44999 Escape comment author URL] - [https://github.com/WordPress/gutenberg/pull/44972 #44972 Navigator: restore focus only once per location] - [https://github.com/WordPress/gutenberg/pull/44858 #44858 Spacing Sizes Control: Try improving layout spacing] - [https://github.com/WordPress/gutenberg/pull/44878 #44878 Fix: Inspector is usable on the top level block even if it is content locked] - [https://github.com/WordPress/gutenberg/pull/44809 #44809 Fix list outdents on Enter in quote block] - [https://github.com/WordPress/gutenberg/pull/44864 #44864 List v2: fix selection when creating paragraph from empty list item] - [https://github.com/WordPress/gutenberg/pull/44853 #44853 Fix overflowing patterns] - [https://github.com/WordPress/gutenberg/pull/45050 #45050 Fix visibility of nested Group block appender] - [https://github.com/WordPress/gutenberg/pull/44887 #44887 wp-env: Use case insensitive regex when checking WP version string] Follow-up to [54257], [54335], [54383], [54483], [54486], [54490]. Props bernhard-reiter, audrasjb. See #56467. Built from https://develop.svn.wordpress.org/trunk@54632 git-svn-id: http://core.svn.wordpress.org/trunk@54184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
79 lines
2.1 KiB
PHP
79 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Server-side rendering of the `core/widget-group` block.
|
|
*
|
|
* @package WordPress
|
|
*/
|
|
|
|
/**
|
|
* Renders the 'core/widget-group' block.
|
|
*
|
|
* @param array $attributes The block attributes.
|
|
* @param string $content The block content.
|
|
* @param WP_Block $block The block.
|
|
*
|
|
* @return string Rendered block.
|
|
*/
|
|
function render_block_core_widget_group( $attributes, $content, $block ) {
|
|
global $wp_registered_sidebars, $_sidebar_being_rendered;
|
|
|
|
if ( isset( $wp_registered_sidebars[ $_sidebar_being_rendered ] ) ) {
|
|
$before_title = $wp_registered_sidebars[ $_sidebar_being_rendered ]['before_title'];
|
|
$after_title = $wp_registered_sidebars[ $_sidebar_being_rendered ]['after_title'];
|
|
} else {
|
|
$before_title = '<h2 class="widget-title">';
|
|
$after_title = '</h2>';
|
|
}
|
|
|
|
$html = '';
|
|
|
|
if ( ! empty( $attributes['title'] ) ) {
|
|
$html .= $before_title . esc_html( $attributes['title'] ) . $after_title;
|
|
}
|
|
|
|
$html .= '<div class="wp-widget-group__inner-blocks">';
|
|
foreach ( $block->inner_blocks as $inner_block ) {
|
|
$html .= $inner_block->render();
|
|
}
|
|
$html .= '</div>';
|
|
|
|
return $html;
|
|
}
|
|
|
|
/**
|
|
* Registers the 'core/widget-group' block.
|
|
*/
|
|
function register_block_core_widget_group() {
|
|
register_block_type_from_metadata(
|
|
__DIR__ . '/widget-group',
|
|
array(
|
|
'render_callback' => 'render_block_core_widget_group',
|
|
)
|
|
);
|
|
}
|
|
|
|
add_action( 'init', 'register_block_core_widget_group' );
|
|
|
|
/**
|
|
* Make a note of the sidebar being rendered before WordPress starts rendering
|
|
* it. This lets us get to the current sidebar in
|
|
* render_block_core_widget_group().
|
|
*
|
|
* @param int|string $index Index, name, or ID of the dynamic sidebar.
|
|
*/
|
|
function note_sidebar_being_rendered( $index ) {
|
|
global $_sidebar_being_rendered;
|
|
$_sidebar_being_rendered = $index;
|
|
}
|
|
add_action( 'dynamic_sidebar_before', 'note_sidebar_being_rendered' );
|
|
|
|
/**
|
|
* Clear whatever we set in note_sidebar_being_rendered() after WordPress
|
|
* finishes rendering a sidebar.
|
|
*/
|
|
function discard_sidebar_being_rendered() {
|
|
global $_sidebar_being_rendered;
|
|
unset( $_sidebar_being_rendered );
|
|
}
|
|
add_action( 'dynamic_sidebar_after', 'discard_sidebar_being_rendered' );
|