--- a/wp/wp-includes/style-engine/class-wp-style-engine.php Fri Sep 05 18:40:08 2025 +0200
+++ b/wp/wp-includes/style-engine/class-wp-style-engine.php Fri Sep 05 18:52:52 2025 +0200
@@ -25,6 +25,7 @@
* @since 6.4.0 Added support for background.backgroundImage.
* @since 6.5.0 Added support for background.backgroundPosition,
* background.backgroundRepeat and dimensions.aspectRatio.
+ * @since 6.7.0 Added support for typography.writingMode.
*/
#[AllowDynamicProperties]
final class WP_Style_Engine {
@@ -50,31 +51,37 @@
*/
const BLOCK_STYLE_DEFINITIONS_METADATA = array(
'background' => array(
- 'backgroundImage' => array(
+ 'backgroundImage' => array(
'property_keys' => array(
'default' => 'background-image',
),
'value_func' => array( self::class, 'get_url_or_value_css_declaration' ),
'path' => array( 'background', 'backgroundImage' ),
),
- 'backgroundPosition' => array(
+ 'backgroundPosition' => array(
'property_keys' => array(
'default' => 'background-position',
),
'path' => array( 'background', 'backgroundPosition' ),
),
- 'backgroundRepeat' => array(
+ 'backgroundRepeat' => array(
'property_keys' => array(
'default' => 'background-repeat',
),
'path' => array( 'background', 'backgroundRepeat' ),
),
- 'backgroundSize' => array(
+ 'backgroundSize' => array(
'property_keys' => array(
'default' => 'background-size',
),
'path' => array( 'background', 'backgroundSize' ),
),
+ 'backgroundAttachment' => array(
+ 'property_keys' => array(
+ 'default' => 'background-attachment',
+ ),
+ 'path' => array( 'background', 'backgroundAttachment' ),
+ ),
),
'color' => array(
'text' => array(
@@ -299,6 +306,12 @@
),
'path' => array( 'typography', 'letterSpacing' ),
),
+ 'writingMode' => array(
+ 'property_keys' => array(
+ 'default' => 'writing-mode',
+ ),
+ 'path' => array( 'typography', 'writingMode' ),
+ ),
),
);
@@ -441,8 +454,15 @@
continue;
}
- $parsed_styles['classnames'] = array_merge( $parsed_styles['classnames'], static::get_classnames( $style_value, $style_definition ) );
- $parsed_styles['declarations'] = array_merge( $parsed_styles['declarations'], static::get_css_declarations( $style_value, $style_definition, $options ) );
+ $classnames = static::get_classnames( $style_value, $style_definition );
+ if ( ! empty( $classnames ) ) {
+ $parsed_styles['classnames'] = array_merge( $parsed_styles['classnames'], $classnames );
+ }
+
+ $css_declarations = static::get_css_declarations( $style_value, $style_definition, $options );
+ if ( ! empty( $css_declarations ) ) {
+ $parsed_styles['declarations'] = array_merge( $parsed_styles['declarations'], $css_declarations );
+ }
}
}