Editor: limit layout rules on themes without theme.json.

Removes output of base rules for flow and constrained layout types on themes without theme.json.

Props evanltd, poena, isabel_brison, andrewserong, oandregal.
Reviewed by jorbin.
Merges [58028] to the 6.5 branch.
See #60981.

Built from https://develop.svn.wordpress.org/branches/6.5@58057


git-svn-id: http://core.svn.wordpress.org/branches/6.5@57522 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
isabel_brison 2024-04-30 03:19:10 +00:00
parent c164facc1d
commit 07fe72c6b3
2 changed files with 10 additions and 3 deletions

View File

@ -1227,7 +1227,7 @@ class WP_Theme_JSON {
); );
foreach ( $base_styles_nodes as $base_style_node ) { foreach ( $base_styles_nodes as $base_style_node ) {
$stylesheet .= $this->get_layout_styles( $base_style_node ); $stylesheet .= $this->get_layout_styles( $base_style_node, $types );
} }
} }
@ -1389,11 +1389,13 @@ class WP_Theme_JSON {
* @since 6.1.0 * @since 6.1.0
* @since 6.3.0 Reduced specificity for layout margin rules. * @since 6.3.0 Reduced specificity for layout margin rules.
* @since 6.5.1 Only output rules referencing content and wide sizes when values exist. * @since 6.5.1 Only output rules referencing content and wide sizes when values exist.
* @since 6.5.3 Add types parameter to check if only base layout styles are needed.
* *
* @param array $block_metadata Metadata about the block to get styles for. * @param array $block_metadata Metadata about the block to get styles for.
* @param array $types Optional. Types of styles to output. If empty, all styles will be output.
* @return string Layout styles for the block. * @return string Layout styles for the block.
*/ */
protected function get_layout_styles( $block_metadata ) { protected function get_layout_styles( $block_metadata, $types = array() ) {
$block_rules = ''; $block_rules = '';
$block_type = null; $block_type = null;
@ -1543,6 +1545,11 @@ class WP_Theme_JSON {
foreach ( $base_style_rules as $base_style_rule ) { foreach ( $base_style_rules as $base_style_rule ) {
$declarations = array(); $declarations = array();
// Skip outputting base styles for flow and constrained layout types if theme doesn't support theme.json. The 'base-layout-styles' type flags this.
if ( in_array( 'base-layout-styles', $types, true ) && ( 'default' === $layout_definition['name'] || 'constrained' === $layout_definition['name'] ) ) {
continue;
}
if ( if (
isset( $base_style_rule['selector'] ) && isset( $base_style_rule['selector'] ) &&
preg_match( $layout_selector_pattern, $base_style_rule['selector'] ) && preg_match( $layout_selector_pattern, $base_style_rule['selector'] ) &&

View File

@ -16,7 +16,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '6.5.3-alpha-58056'; $wp_version = '6.5.3-alpha-58057';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.