wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_resolve_block_style_variation_ref_values › WordPress Function

Since6.6.0
Deprecatedn/a
wp_resolve_block_style_variation_ref_values ( $variation_data, $theme_json )
Access:
  • private
Parameters: (2)
  • (array) $variation_data Reference to the variation data being processed.
    Required: Yes
  • (array) $theme_json Theme.json data to retrieve referenced values from.
    Required: Yes
Defined at:
Codex:

Recursively resolves any `ref` values within a block style variation's data.



Source

function wp_resolve_block_style_variation_ref_values( &$variation_data, $theme_json ) {
	foreach ( $variation_data as $key => &$value ) {
		// Only need to potentially process arrays.
		if ( is_array( $value ) ) {
			// If ref value is set, attempt to find its matching value and update it.
			if ( array_key_exists( 'ref', $value ) ) {
				// Clean up any invalid ref value.
				if ( empty( $value['ref'] ) || ! is_string( $value['ref'] ) ) {
					unset( $variation_data[ $key ] );
				}

				$value_path = explode( '.', $value['ref'] ?? '' );
				$ref_value  = _wp_array_get( $theme_json, $value_path );

				// Only update the current value if the referenced path matched a value.
				if ( null === $ref_value ) {
					unset( $variation_data[ $key ] );
				} else {
					$value = $ref_value;
				}
			} else {
				// Recursively look for ref instances.
				wp_resolve_block_style_variation_ref_values( $value, $theme_json );
			}
		}
	}
}