mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-09 03:30:06 +00:00
Block Editor: Add Global Settings support using theme.json file.
This is the first piece of landing the theme.json processing in WordPress core. It allows themes to configure the different editor settings, allow cusomizations and define presets in theme.json file. Props jorgefilipecosta, nosolosw. See #53175. git-svn-id: https://develop.svn.wordpress.org/trunk@50959 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -243,6 +243,50 @@ function get_block_editor_settings( $editor_name, $custom_settings = array() ) {
|
||||
$custom_settings
|
||||
);
|
||||
|
||||
$editor_settings['__experimentalFeatures'] = WP_Theme_JSON_Resolver::get_merged_data( $editor_settings )->get_settings();
|
||||
|
||||
// These settings may need to be updated based on data coming from theme.json sources.
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['color']['palette'] ) ) {
|
||||
$editor_settings['colors'] = $editor_settings['__experimentalFeatures']['color']['palette'];
|
||||
unset( $editor_settings['__experimentalFeatures']['color']['palette'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['color']['gradients'] ) ) {
|
||||
$editor_settings['gradients'] = $editor_settings['__experimentalFeatures']['color']['gradients'];
|
||||
unset( $editor_settings['__experimentalFeatures']['color']['gradients'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['color']['custom'] ) ) {
|
||||
$editor_settings['disableCustomColors'] = $editor_settings['__experimentalFeatures']['color']['custom'];
|
||||
unset( $editor_settings['__experimentalFeatures']['color']['custom'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['color']['customGradient'] ) ) {
|
||||
$editor_settings['disableCustomGradients'] = $editor_settings['__experimentalFeatures']['color']['customGradient'];
|
||||
unset( $editor_settings['__experimentalFeatures']['color']['customGradient'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['typography']['fontSizes'] ) ) {
|
||||
$editor_settings['fontSizes'] = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
|
||||
unset( $editor_settings['__experimentalFeatures']['typography']['fontSizes'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['typography']['customFontSize'] ) ) {
|
||||
$editor_settings['disableCustomFontSizes'] = $editor_settings['__experimentalFeatures']['typography']['customFontSize'];
|
||||
unset( $editor_settings['__experimentalFeatures']['typography']['customFontSize'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['typography']['customLineHeight'] ) ) {
|
||||
$editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['customLineHeight'];
|
||||
unset( $editor_settings['__experimentalFeatures']['typography']['customLineHeight'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['spacing']['units'] ) ) {
|
||||
if ( ! is_array( $editor_settings['__experimentalFeatures']['spacing']['units'] ) ) {
|
||||
$editor_settings['enableCustomUnits'] = false;
|
||||
} else {
|
||||
$editor_settings['enableCustomUnits'] = count( $editor_settings['__experimentalFeatures']['spacing']['units'] ) > 0;
|
||||
}
|
||||
unset( $editor_settings['__experimentalFeatures']['spacing']['units'] );
|
||||
}
|
||||
if ( isset( $editor_settings['__experimentalFeatures']['spacing']['customPadding'] ) ) {
|
||||
$editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['customPadding'];
|
||||
unset( $editor_settings['__experimentalFeatures']['spacing']['customPadding'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the settings to pass to the block editor for all editor type.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user