WP_Theme_JSON::remove_insecure_inner_block_stylesprotected staticWP 6.8.0

Remove insecure styles from inner blocks and their elements.

When responsive media queries are provided, nested responsive state styles for those media-query keys are re-added after the base sanitization pass.

Method of the class: WP_Theme_JSON{}

No Hooks.

Returns

Array. Sanitized block type styles.

Usage

$result = WP_Theme_JSON::remove_insecure_inner_block_styles( $blocks, $responsive_media_queries );
$blocks(array) (required)
The block styles to process.
$responsive_media_queries(array|null)
Media queries whose keys define allowed viewport states.
Default: null

Changelog

Since 6.8.0 Introduced.
Since 7.1.0 Added the $responsive_media_queries parameter.

WP_Theme_JSON::remove_insecure_inner_block_styles() code WP 7.1

protected static function remove_insecure_inner_block_styles( $blocks, $responsive_media_queries = null ) {
	$sanitized = array();
	foreach ( $blocks as $block_type => $block_input ) {
		$block_output = static::remove_insecure_styles( $block_input );

		if ( isset( $block_input['elements'] ) ) {
			$block_output['elements'] = static::remove_insecure_element_styles( $block_input['elements'], $responsive_media_queries );
		}

		if ( null !== $responsive_media_queries ) {
			// Re-add and process responsive breakpoint styles for inner blocks.
			foreach ( array_keys( $responsive_media_queries ) as $breakpoint ) {
				if ( isset( $block_input[ $breakpoint ] ) ) {
					$block_output[ $breakpoint ] = static::remove_insecure_styles( $block_input[ $breakpoint ] );

					if ( isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_type ] ) ) {
						foreach ( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_type ] as $pseudo_selector ) {
							if ( isset( $block_input[ $breakpoint ][ $pseudo_selector ] ) ) {
								$block_output[ $breakpoint ][ $pseudo_selector ] = static::remove_insecure_styles( $block_input[ $breakpoint ][ $pseudo_selector ] );
							}
						}
					}
				}
			}
		}

		$sanitized[ $block_type ] = $block_output;
	}
	return $sanitized;
}