wp-includes/class-wp-duotone.php:1036Scrape all block names from global styles and store in self::$global_styles_block_names.
string[] private static function get_all_global_style_block_names() { if ( isset( self::$global_styles_block_names ) ) { return self::$global_styles_block_names; } // Get the per block settings from the theme.json. $tree = WP_Theme_JSON_Resolver::get_merged_data(); $block_nodes = $tree->get_styles_block_nodes(); $theme_json = $tree->get_raw_data(); self::$global_styles_block_names = array(); foreach ( $block_nodes as $block_node ) { // This block definition doesn't include any duotone settings. Skip it. if ( empty( $block_node['duotone'] ) ) { continue; } // Value looks like this: 'var(--wp--preset--duotone--blue-orange)' or 'var:preset|duotone|blue-orange'. $duotone_attr_path = array_merge( $block_node['path'], array( 'filter', 'duotone' ) ); $duotone_attr = _wp_array_get( $theme_json, $duotone_attr_path, array() ); if ( empty( $duotone_attr ) ) { continue; } // If it has a duotone filter preset, save the block name and the preset slug. // Only process if it's a string (preset reference), not an array (custom colors). if ( ! is_string( $duotone_attr ) ) { continue; } $slug = self::get_slug_from_attribute( $duotone_attr ); if ( $slug && $slug !== $duotone_attr ) { self::$global_styles_block_names[ $block_node['name'] ] = $slug; } } return self::$global_styles_block_names; }Introduced in 6.3.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-includes/class-wp-duotone.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.