wp_resolve_block_style_variation_ref_values()
Recursively resolves any ref values within a block style variation's data.
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуков нет.
Возвращает
null. Ничего (null).
Использование
wp_resolve_block_style_variation_ref_values( $variation_data, $theme_json );
- $variation_data(массив) (обязательный) (передается по ссылке — &)
- Reference to the variation data being processed.
- $theme_json(массив) (обязательный)
- Theme.json data to retrieve referenced values from.
Список изменений
| С версии 6.6.0 | Введена. |
Код wp_resolve_block_style_variation_ref_values() wp resolve block style variation ref values WP 6.8.3
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 );
}
}
}
}