wp_get_block_state_element_selectors()
Generates all element selectors for a block root selector.
No Hooks.
Returns
string[]. Element selectors keyed by element name.
Usage
wp_get_block_state_element_selectors( $root_selector );
- $root_selector(string) (required)
- The block root CSS selector.
Changelog
| Since 7.1.0 | Introduced. |
wp_get_block_state_element_selectors() wp get block state element selectors code WP 7.1
function wp_get_block_state_element_selectors( $root_selector ) {
if ( ! is_string( $root_selector ) || '' === trim( $root_selector ) ) {
return array();
}
$block_selectors = wp_split_selector_list( $root_selector );
$element_selectors = array();
foreach ( WP_Theme_JSON::ELEMENTS as $element_name => $element_selector ) {
$selectors = array();
foreach ( $block_selectors as $block_selector ) {
$block_selector = trim( $block_selector );
if ( '' === $block_selector ) {
continue;
}
if ( $block_selector === $element_selector ) {
$selectors = array( $element_selector );
break;
}
$selector_prefix = "$block_selector ";
if ( ! str_contains( $element_selector, ',' ) ) {
$selectors[] = $selector_prefix . $element_selector;
continue;
}
$prepended_selectors = array();
foreach ( wp_split_selector_list( $element_selector ) as $selector ) {
$prepended_selectors[] = $selector_prefix . $selector;
}
$selectors[] = implode( ',', $prepended_selectors );
}
if ( ! empty( $selectors ) ) {
$element_selectors[ $element_name ] = implode( ',', $selectors );
}
}
return $element_selectors;
}