Title: WP_Theme_JSON_Resolver::get_merged_data
Published: July 20, 2021
Last modified: February 24, 2026

---

# WP_Theme_JSON_Resolver::get_merged_data( string $origin ): 󠀁[WP_Theme_JSON](https://developer.wordpress.org/reference/classes/wp_theme_json/)󠁿

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#wp--skip-link--target)

Returns the data merged from multiple origins.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#description)󠁿

There are four sources of data (origins) for a site:

 * default => WordPress
 * blocks => each one of the blocks provides data for itself
 * theme => the active theme
 * custom => data provided by the user

The custom’s has higher priority than the theme’s, the theme’s higher than blocks’,
and block’s higher than default’s.

Unlike the getters [ get_core_data](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_core_data/),
[ get_theme_data](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_theme_data/),
and [ get_user_data](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_user_data/),
this method returns data after it has been merged with the previous origins.
This
means that if the same piece of data is declared in different origins (default, 
blocks, theme, custom), the last origin overrides the previous.

For example, if the user has set a background color for the paragraph block, and
the theme has done it as well, the user preference wins.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#parameters)󠁿

 `$origin`stringoptional

To what level should we merge data: `'default'`, `'blocks'`, `'theme'` or `'custom'`.
`'
custom'` is used as default value as well as fallback value if the origin is unknown.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#return)󠁿

 [WP_Theme_JSON](https://developer.wordpress.org/reference/classes/wp_theme_json/)

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#source)󠁿

    ```php
    public static function get_merged_data( $origin = 'custom' ) {
    	if ( is_array( $origin ) ) {
    		_deprecated_argument( __FUNCTION__, '5.9.0' );
    	}

    	$result = new WP_Theme_JSON();
    	$result->merge( static::get_core_data() );
    	if ( 'default' === $origin ) {
    		return $result;
    	}

    	$result->merge( static::get_block_data() );
    	if ( 'blocks' === $origin ) {
    		return $result;
    	}

    	$result->merge( static::get_theme_data() );
    	if ( 'theme' === $origin ) {
    		return $result;
    	}

    	$result->merge( static::get_user_data() );

    	return $result;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-theme-json-resolver.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wp-theme-json-resolver.php#L652)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-theme-json-resolver.php#L652-L676)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_Theme_JSON::__construct()](https://developer.wordpress.org/reference/classes/wp_theme_json/__construct/)`wp-includes/class-wp-theme-json.php` |

Constructor.

  | 
| [_deprecated_argument()](https://developer.wordpress.org/reference/functions/_deprecated_argument/)`wp-includes/functions.php` |

Marks a function argument as deprecated and inform when it has been used.

  |

| Used by | Description | 
| [WP_Duotone::get_all_global_style_block_names()](https://developer.wordpress.org/reference/classes/wp_duotone/get_all_global_style_block_names/)`wp-includes/class-wp-duotone.php` |

Scrape all block names from global styles and store in self::$global_styles_block_names.

  | 
| [wp_get_global_styles_custom_css()](https://developer.wordpress.org/reference/functions/wp_get_global_styles_custom_css/)`wp-includes/deprecated.php` |

Gets the global styles custom CSS from theme.json.

  | 
| [wp_add_global_styles_for_blocks()](https://developer.wordpress.org/reference/functions/wp_add_global_styles_for_blocks/)`wp-includes/global-styles-and-settings.php` |

Adds global style rules to the inline style for each block.

  | 
| [wp_get_global_styles_svg_filters()](https://developer.wordpress.org/reference/functions/wp_get_global_styles_svg_filters/)`wp-includes/deprecated.php` |

Returns a string containing the SVGs to be referenced as filters (duotone).

  | 
| [_wp_theme_json_webfonts_handler()](https://developer.wordpress.org/reference/functions/_wp_theme_json_webfonts_handler/)`wp-includes/deprecated.php` |

Runs the theme.json webfonts handler.

  | 
| [wp_get_global_settings()](https://developer.wordpress.org/reference/functions/wp_get_global_settings/)`wp-includes/global-styles-and-settings.php` |

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

  | 
| [wp_get_global_styles()](https://developer.wordpress.org/reference/functions/wp_get_global_styles/)`wp-includes/global-styles-and-settings.php` |

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

  | 
| [wp_get_global_stylesheet()](https://developer.wordpress.org/reference/functions/wp_get_global_stylesheet/)`wp-includes/global-styles-and-settings.php` |

Returns the stylesheet resulting of merging core, theme, and user data.

  | 
| [WP_REST_Global_Styles_Controller::get_theme_item()](https://developer.wordpress.org/reference/classes/wp_rest_global_styles_controller/get_theme_item/)`wp-includes/rest-api/endpoints/class-wp-rest-global-styles-controller.php` |

Returns the given theme global styles config.

  |

[Show 4 more](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_merged_data/?output_format=md#changelog)󠁿

| Version | Description | 
| [6.2.0](https://developer.wordpress.org/reference/since/6.2.0/) | Changed ‘ $origin’ parameter values to `'default'`, `'blocks'`, `'theme'` or `'custom'`. | 
| [6.1.0](https://developer.wordpress.org/reference/since/6.1.0/) | Added block data and generation of spacingSizes array. | 
| [5.9.0](https://developer.wordpress.org/reference/since/5.9.0/) | Added user data, removed the `$settings` parameter, added the `$origin` parameter. | 
| [5.8.0](https://developer.wordpress.org/reference/since/5.8.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_theme_json_resolver%2Fget_merged_data%2F)
before being able to contribute a note or feedback.