wp_get_state_style_groups()
Splits a state style object into groups based on block feature selectors.
No Hooks.
Returns
array[]. Selector/style groups.
Usage
wp_get_state_style_groups( $state_style, $block_selectors );
- $state_style(array) (required)
- State style object.
- $block_selectors(array) (required)
- Block selectors metadata.
Changelog
| Since 7.1.0 | Introduced. |
wp_get_state_style_groups() wp get state style groups code WP 7.1
function wp_get_state_style_groups( $state_style, $block_selectors ) {
$groups = array();
foreach ( $state_style as $feature => $feature_styles ) {
$feature_selectors = $block_selectors[ $feature ] ?? null;
if ( is_string( $feature_selectors ) ) {
wp_add_state_style_group(
$groups,
$feature_selectors,
array( $feature => $feature_styles )
);
continue;
}
if ( is_array( $feature_selectors ) && is_array( $feature_styles ) ) {
$remaining_styles = $feature_styles;
foreach ( $feature_selectors as $subfeature => $subfeature_selector ) {
if (
'root' === $subfeature ||
! is_string( $subfeature_selector ) ||
! array_key_exists( $subfeature, $feature_styles )
) {
continue;
}
wp_add_state_style_group(
$groups,
$subfeature_selector,
array(
$feature => array(
$subfeature => $feature_styles[ $subfeature ],
),
)
);
unset( $remaining_styles[ $subfeature ] );
}
if ( array() !== $remaining_styles ) {
wp_add_state_style_group(
$groups,
$feature_selectors['root'] ?? ( $block_selectors['root'] ?? null ),
array( $feature => $remaining_styles )
);
}
continue;
}
wp_add_state_style_group(
$groups,
$block_selectors['root'] ?? null,
array( $feature => $feature_styles )
);
}
return array_values( $groups );
}