diff -r 48c4eec2b7e6 -r 8c2e4d02f4ef wp/wp-includes/fonts/class-wp-font-face-resolver.php --- a/wp/wp-includes/fonts/class-wp-font-face-resolver.php Fri Sep 05 18:40:08 2025 +0200 +++ b/wp/wp-includes/fonts/class-wp-font-face-resolver.php Fri Sep 05 18:52:52 2025 +0200 @@ -37,6 +37,38 @@ } /** + * Gets fonts defined in style variations. + * + * @since 6.7.0 + * + * @return array Returns an array of font-families. + */ + public static function get_fonts_from_style_variations() { + $variations = WP_Theme_JSON_Resolver::get_style_variations(); + $fonts = array(); + + if ( empty( $variations ) ) { + return $fonts; + } + + foreach ( $variations as $variation ) { + if ( ! empty( $variation['settings']['typography']['fontFamilies']['theme'] ) ) { + $fonts = array_merge( $fonts, $variation['settings']['typography']['fontFamilies']['theme'] ); + } + } + + $settings = array( + 'typography' => array( + 'fontFamilies' => array( + 'theme' => $fonts, + ), + ), + ); + + return static::parse_settings( $settings ); + } + + /** * Parse theme.json settings to extract font definitions with variations grouped by font-family. * * @since 6.4.0