WordPress Version: 1.1
/**
* Returns the default block editor settings.
*
* @since 5.8.0
*
* @return array The default block editor settings.
*/
function get_default_block_editor_settings()
{
// Media settings.
// wp_max_upload_size() can be expensive, so only call it when relevant for the current user.
$max_upload_size = 0;
if (current_user_can('upload_files')) {
$max_upload_size = wp_max_upload_size();
if (!$max_upload_size) {
$max_upload_size = 0;
}
}
/** This filter is documented in wp-admin/includes/media.php */
$image_size_names = apply_filters('image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')));
$available_image_sizes = array();
foreach ($image_size_names as $image_size_slug => $image_size_name) {
$available_image_sizes[] = array('slug' => $image_size_slug, 'name' => $image_size_name);
}
$default_size = get_option('image_default_size', 'large');
$image_default_size = in_array($default_size, array_keys($image_size_names), true) ? $default_size : 'large';
$image_dimensions = array();
$all_sizes = wp_get_registered_image_subsizes();
foreach ($available_image_sizes as $size) {
$key = $size['slug'];
if (isset($all_sizes[$key])) {
$image_dimensions[$key] = $all_sizes[$key];
}
}
// These styles are used if the "no theme styles" options is triggered or on
// themes without their own editor styles.
$default_editor_styles_file = ABSPATH . WPINC . '/css/dist/block-editor/default-editor-styles.css';
static $default_editor_styles_file_contents = false;
if (!$default_editor_styles_file_contents && file_exists($default_editor_styles_file)) {
$default_editor_styles_file_contents = file_get_contents($default_editor_styles_file);
}
$default_editor_styles = array();
if ($default_editor_styles_file_contents) {
$default_editor_styles = array(array('css' => $default_editor_styles_file_contents));
}
$editor_settings = array(
'alignWide' => get_theme_support('align-wide'),
'allowedBlockTypes' => true,
'allowedMimeTypes' => get_allowed_mime_types(),
'defaultEditorStyles' => $default_editor_styles,
'blockCategories' => get_default_block_categories(),
'disableCustomColors' => get_theme_support('disable-custom-colors'),
'disableCustomFontSizes' => get_theme_support('disable-custom-font-sizes'),
'disableCustomGradients' => get_theme_support('disable-custom-gradients'),
'disableLayoutStyles' => get_theme_support('disable-layout-styles'),
'enableCustomLineHeight' => get_theme_support('custom-line-height'),
'enableCustomSpacing' => get_theme_support('custom-spacing'),
'enableCustomUnits' => get_theme_support('custom-units'),
'isRTL' => is_rtl(),
'imageDefaultSize' => $image_default_size,
'imageDimensions' => $image_dimensions,
'imageEditing' => true,
'imageSizes' => $available_image_sizes,
'maxUploadFileSize' => $max_upload_size,
// The following flag is required to enable the new Gallery block format on the mobile apps in 5.9.
'__unstableGalleryWithImageBlocks' => true,
);
// Theme settings.
$color_palette = current((array) get_theme_support('editor-color-palette'));
if (false !== $color_palette) {
$editor_settings['colors'] = $color_palette;
}
$font_sizes = current((array) get_theme_support('editor-font-sizes'));
if (false !== $font_sizes) {
$editor_settings['fontSizes'] = $font_sizes;
}
$gradient_presets = current((array) get_theme_support('editor-gradient-presets'));
if (false !== $gradient_presets) {
$editor_settings['gradients'] = $gradient_presets;
}
return $editor_settings;
}