wp_get_global_styles( array $path = array(), array $context = array() ): mixed

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


Path to the specific style to retrieve. Optional.
If empty, will return all styles.


Metadata to know where to retrieve the $path from. Optional.
  • 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.



mixed The styles array or individual style value to retrieve.


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 );


6.3.0transforms is now usable in the context parameter. In case [transforms]['resolve_variables'] is defined, variables are resolved to their value in the styles.

User Contributed Notes

You must log in before being able to contribute a note or feedback.