Editor: fix classname output on blocks without layout.

Prevents layout classnames from being output on blocks with no layout support and no child layout classnames by returning early from `wp_render_layout_support_flag`.

Props andrewserong.
Fixes #60292.


git-svn-id: https://develop.svn.wordpress.org/trunk@57328 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Isabel Brison 2024-01-23 05:36:40 +00:00
parent 3c4fbc353f
commit c9f04d4053
2 changed files with 23 additions and 0 deletions

View File

@ -615,6 +615,9 @@ function wp_render_layout_support_flag( $block_content, $block ) {
$processor->add_class( $class_name );
}
return $processor->get_updated_html();
} elseif ( ! $block_supports_layout ) {
// Ensure layout classnames are not injected if there is no layout support.
return $block_content;
}
$global_settings = wp_get_global_settings();

View File

@ -171,6 +171,7 @@ class Test_Block_Supports_Layout extends WP_UnitTestCase {
/**
* @ticket 57584
* @ticket 58548
* @ticket 60292
*
* @dataProvider data_layout_support_flag_renders_classnames_on_wrapper
*
@ -250,6 +251,25 @@ class Test_Block_Supports_Layout extends WP_UnitTestCase {
),
'expected_output' => '<div class="wp-block-group"><div class="wp-block-group__inner-wrapper is-layout-flow wp-block-group-is-layout-flow"></div></div>',
),
'skip classname output if block does not support layout and there are no child layout classes to be output' => array(
'args' => array(
'block_content' => '<p>A paragraph</p>',
'block' => array(
'blockName' => 'core/paragraph',
'attrs' => array(
'style' => array(
'layout' => array(
'selfStretch' => 'fit',
),
),
),
'innerBlocks' => array(),
'innerHTML' => '<p>A paragraph</p>',
'innerContent' => array( '<p>A paragraph</p>' ),
),
),
'expected_output' => '<p>A paragraph</p>',
),
);
}