wp_get_global_styles()WP 5.9.0

Gets the styles resulting of merging core, theme, and user data.

No Hooks.


Mixed. The styles array or individual style value to retrieve.


wp_get_global_styles( $path, $context );
Path to the specific style to retrieve. Optional. If empty, will return all styles.
Default: array()

Metadata to know where to retrieve the $path from. Optional.

Default: array()

  • block_name(string)
    Which block to retrieve the styles from. If empty, it'll return the styles for the global context.

  • origin(string)
    Which origin to take data from. Valid values are 'all' (core, theme, and user) or 'base' (core and theme). If empty or unknown, 'all' is used.

  • transforms(array)
    Which transformation(s) to apply. Valid value is array( 'resolve-variables' ). If defined, variables are resolved to their value in the styles.


Since 5.9.0 Introduced.
Since 6.3.0 the internal link format "var:preset color secondary" is resolved to "var(--wp--preset--font-size--small)" so consumers don't have to.
Since 6.3.0 transforms is now usable in the context parameter. In case [transforms]['resolve_variables'] is defined, variables are resolved to their value in the styles.

wp_get_global_styles() code WP 6.5.4

function wp_get_global_styles( $path = array(), $context = array() ) {
	if ( ! empty( $context['block_name'] ) ) {
		$path = array_merge( array( 'blocks', $context['block_name'] ), $path );

	$origin = 'custom';
	if ( isset( $context['origin'] ) && 'base' === $context['origin'] ) {
		$origin = 'theme';

	$resolve_variables = isset( $context['transforms'] )
	&& is_array( $context['transforms'] )
	&& in_array( 'resolve-variables', $context['transforms'], true );

	$merged_data = WP_Theme_JSON_Resolver::get_merged_data( $origin );
	if ( $resolve_variables ) {
		$merged_data = WP_Theme_JSON::resolve_variables( $merged_data );
	$styles = $merged_data->get_raw_data()['styles'];
	return _wp_array_get( $styles, $path, $styles );