wp/wp-includes/style-engine/class-wp-style-engine.php
changeset 22 8c2e4d02f4ef
parent 21 48c4eec2b7e6
--- 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 );
+				}
 			}
 		}