equal
deleted
inserted
replaced
5 * @package WordPress |
5 * @package WordPress |
6 */ |
6 */ |
7 |
7 |
8 /** |
8 /** |
9 * Renders the 'core/widget-group' block. |
9 * Renders the 'core/widget-group' block. |
|
10 * |
|
11 * @since 5.9.0 |
|
12 * |
|
13 * @global array $wp_registered_sidebars |
|
14 * @global int|string $_sidebar_being_rendered |
10 * |
15 * |
11 * @param array $attributes The block attributes. |
16 * @param array $attributes The block attributes. |
12 * @param string $content The block content. |
17 * @param string $content The block content. |
13 * @param WP_Block $block The block. |
18 * @param WP_Block $block The block. |
14 * |
19 * |
26 } |
31 } |
27 |
32 |
28 $html = ''; |
33 $html = ''; |
29 |
34 |
30 if ( ! empty( $attributes['title'] ) ) { |
35 if ( ! empty( $attributes['title'] ) ) { |
31 $html .= $before_title . $attributes['title'] . $after_title; |
36 $html .= $before_title . esc_html( $attributes['title'] ) . $after_title; |
32 } |
37 } |
33 |
38 |
34 $html .= '<div class="wp-widget-group__inner-blocks">'; |
39 $html .= '<div class="wp-widget-group__inner-blocks">'; |
35 foreach ( $block->inner_blocks as $inner_block ) { |
40 foreach ( $block->inner_blocks as $inner_block ) { |
36 $html .= $inner_block->render(); |
41 $html .= $inner_block->render(); |
40 return $html; |
45 return $html; |
41 } |
46 } |
42 |
47 |
43 /** |
48 /** |
44 * Registers the 'core/widget-group' block. |
49 * Registers the 'core/widget-group' block. |
|
50 * |
|
51 * @since 5.9.0 |
45 */ |
52 */ |
46 function register_block_core_widget_group() { |
53 function register_block_core_widget_group() { |
47 register_block_type_from_metadata( |
54 register_block_type_from_metadata( |
48 __DIR__ . '/widget-group', |
55 __DIR__ . '/widget-group', |
49 array( |
56 array( |
57 /** |
64 /** |
58 * Make a note of the sidebar being rendered before WordPress starts rendering |
65 * Make a note of the sidebar being rendered before WordPress starts rendering |
59 * it. This lets us get to the current sidebar in |
66 * it. This lets us get to the current sidebar in |
60 * render_block_core_widget_group(). |
67 * render_block_core_widget_group(). |
61 * |
68 * |
|
69 * @since 5.9.0 |
|
70 * |
|
71 * @global int|string $_sidebar_being_rendered |
|
72 * |
62 * @param int|string $index Index, name, or ID of the dynamic sidebar. |
73 * @param int|string $index Index, name, or ID of the dynamic sidebar. |
63 */ |
74 */ |
64 function note_sidebar_being_rendered( $index ) { |
75 function note_sidebar_being_rendered( $index ) { |
65 global $_sidebar_being_rendered; |
76 global $_sidebar_being_rendered; |
66 $_sidebar_being_rendered = $index; |
77 $_sidebar_being_rendered = $index; |
68 add_action( 'dynamic_sidebar_before', 'note_sidebar_being_rendered' ); |
79 add_action( 'dynamic_sidebar_before', 'note_sidebar_being_rendered' ); |
69 |
80 |
70 /** |
81 /** |
71 * Clear whatever we set in note_sidebar_being_rendered() after WordPress |
82 * Clear whatever we set in note_sidebar_being_rendered() after WordPress |
72 * finishes rendering a sidebar. |
83 * finishes rendering a sidebar. |
|
84 * |
|
85 * @since 5.9.0 |
|
86 * |
|
87 * @global int|string $_sidebar_being_rendered |
73 */ |
88 */ |
74 function discard_sidebar_being_rendered() { |
89 function discard_sidebar_being_rendered() { |
75 global $_sidebar_being_rendered; |
90 global $_sidebar_being_rendered; |
76 unset( $_sidebar_being_rendered ); |
91 unset( $_sidebar_being_rendered ); |
77 } |
92 } |