Title: WP_Theme_JSON::get_from_editor_settings
Published: July 20, 2021
Last modified: May 20, 2026

---

# WP_Theme_JSON::get_from_editor_settings( array $settings ): array

## In this article

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

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

Transforms the given editor settings according the add_theme_support format to the
theme.json format.

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

 `$settings`arrayrequired

Existing editor settings.

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

 array Config that adheres to the theme.json schema.

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

    ```php
    public static function get_from_editor_settings( $settings ) {
    	$theme_settings = array(
    		'version'  => static::LATEST_SCHEMA,
    		'settings' => array(),
    	);

    	// Deprecated theme supports.
    	if ( isset( $settings['disableCustomColors'] ) ) {
    		$theme_settings['settings']['color']['custom'] = ! $settings['disableCustomColors'];
    	}

    	if ( isset( $settings['disableCustomGradients'] ) ) {
    		$theme_settings['settings']['color']['customGradient'] = ! $settings['disableCustomGradients'];
    	}

    	if ( isset( $settings['disableCustomFontSizes'] ) ) {
    		$theme_settings['settings']['typography']['customFontSize'] = ! $settings['disableCustomFontSizes'];
    	}

    	if ( isset( $settings['enableCustomLineHeight'] ) ) {
    		$theme_settings['settings']['typography']['lineHeight'] = $settings['enableCustomLineHeight'];
    	}

    	if ( isset( $settings['enableCustomUnits'] ) ) {
    		$theme_settings['settings']['spacing']['units'] = ( true === $settings['enableCustomUnits'] ) ?
    			array( 'px', 'em', 'rem', 'vh', 'vw', '%' ) :
    			$settings['enableCustomUnits'];
    	}

    	if ( isset( $settings['colors'] ) ) {
    		$theme_settings['settings']['color']['palette'] = $settings['colors'];
    	}

    	if ( isset( $settings['gradients'] ) ) {
    		$theme_settings['settings']['color']['gradients'] = $settings['gradients'];
    	}

    	if ( isset( $settings['fontSizes'] ) ) {
    		$font_sizes = $settings['fontSizes'];
    		// Back-compatibility for presets without units.
    		foreach ( $font_sizes as $key => $font_size ) {
    			if ( is_numeric( $font_size['size'] ) ) {
    				$font_sizes[ $key ]['size'] = $font_size['size'] . 'px';
    			}
    		}
    		$theme_settings['settings']['typography']['fontSizes'] = $font_sizes;
    	}

    	if ( isset( $settings['enableCustomSpacing'] ) ) {
    		$theme_settings['settings']['spacing']['padding'] = $settings['enableCustomSpacing'];
    	}

    	if ( isset( $settings['spacingSizes'] ) ) {
    		$theme_settings['settings']['spacing']['spacingSizes'] = $settings['spacingSizes'];
    	}

    	return $theme_settings;
    }
    ```

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

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

| Used by | Description | 
| [WP_Theme_JSON_Resolver::get_theme_data()](https://developer.wordpress.org/reference/classes/wp_theme_json_resolver/get_theme_data/)`wp-includes/class-wp-theme-json-resolver.php` |

Returns the theme’s data.

  |

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

| Version | Description | 
| [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%2Fget_from_editor_settings%2F)
before being able to contribute a note or feedback.