wp_resolve_block_style_variation_ref_values()
Recursively resolves any ref values within a block style variation's data.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Return
null
. Nothing (null).
Usage
wp_resolve_block_style_variation_ref_values( $variation_data, $theme_json );
- $variation_data(array) (required) (passed by reference — &)
- Reference to the variation data being processed.
- $theme_json(array) (required)
- Theme.json data to retrieve referenced values from.
Changelog
Since 6.6.0 | Introduced. |
wp_resolve_block_style_variation_ref_values() wp resolve block style variation ref values code WP 6.7.1
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 ); } } } }