WordPress Version: 6.1
/**
* Creates the initial theme features when the 'setup_theme' action is fired.
*
* See {@see 'setup_theme'}.
*
* @since 5.5.0
* @since 6.0.1 The `block-templates` feature was added.
*/
function create_initial_theme_features()
{
register_theme_feature('align-wide', array('description' => __('Whether theme opts in to wide alignment CSS class.'), 'show_in_rest' => true));
register_theme_feature('automatic-feed-links', array('description' => __('Whether posts and comments RSS feed links are added to head.'), 'show_in_rest' => true));
register_theme_feature('block-templates', array('description' => __('Whether a theme uses block-based templates.'), 'show_in_rest' => true));
register_theme_feature('block-template-parts', array('description' => __('Whether a theme uses block-based template parts.'), 'show_in_rest' => true));
register_theme_feature('custom-background', array('description' => __('Custom background if defined by the theme.'), 'type' => 'object', 'show_in_rest' => array('schema' => array('properties' => array('default-image' => array('type' => 'string', 'format' => 'uri'), 'default-preset' => array('type' => 'string', 'enum' => array('default', 'fill', 'fit', 'repeat', 'custom')), 'default-position-x' => array('type' => 'string', 'enum' => array('left', 'center', 'right')), 'default-position-y' => array('type' => 'string', 'enum' => array('left', 'center', 'right')), 'default-size' => array('type' => 'string', 'enum' => array('auto', 'contain', 'cover')), 'default-repeat' => array('type' => 'string', 'enum' => array('repeat-x', 'repeat-y', 'repeat', 'no-repeat')), 'default-attachment' => array('type' => 'string', 'enum' => array('scroll', 'fixed')), 'default-color' => array('type' => 'string'))))));
register_theme_feature('custom-header', array('description' => __('Custom header if defined by the theme.'), 'type' => 'object', 'show_in_rest' => array('schema' => array('properties' => array('default-image' => array('type' => 'string', 'format' => 'uri'), 'random-default' => array('type' => 'boolean'), 'width' => array('type' => 'integer'), 'height' => array('type' => 'integer'), 'flex-height' => array('type' => 'boolean'), 'flex-width' => array('type' => 'boolean'), 'default-text-color' => array('type' => 'string'), 'header-text' => array('type' => 'boolean'), 'uploads' => array('type' => 'boolean'), 'video' => array('type' => 'boolean'))))));
register_theme_feature('custom-logo', array('type' => 'object', 'description' => __('Custom logo if defined by the theme.'), 'show_in_rest' => array('schema' => array('properties' => array('width' => array('type' => 'integer'), 'height' => array('type' => 'integer'), 'flex-width' => array('type' => 'boolean'), 'flex-height' => array('type' => 'boolean'), 'header-text' => array('type' => 'array', 'items' => array('type' => 'string')), 'unlink-homepage-logo' => array('type' => 'boolean'))))));
register_theme_feature('customize-selective-refresh-widgets', array('description' => __('Whether the theme enables Selective Refresh for Widgets being managed with the Customizer.'), 'show_in_rest' => true));
register_theme_feature('dark-editor-style', array('description' => __('Whether theme opts in to the dark editor style UI.'), 'show_in_rest' => true));
register_theme_feature('disable-custom-colors', array('description' => __('Whether the theme disables custom colors.'), 'show_in_rest' => true));
register_theme_feature('disable-custom-font-sizes', array('description' => __('Whether the theme disables custom font sizes.'), 'show_in_rest' => true));
register_theme_feature('disable-custom-gradients', array('description' => __('Whether the theme disables custom gradients.'), 'show_in_rest' => true));
register_theme_feature('disable-layout-styles', array('description' => __('Whether the theme disables generated layout styles.'), 'show_in_rest' => true));
register_theme_feature('editor-color-palette', array('type' => 'array', 'description' => __('Custom color palette if defined by the theme.'), 'show_in_rest' => array('schema' => array('items' => array('type' => 'object', 'properties' => array('name' => array('type' => 'string'), 'slug' => array('type' => 'string'), 'color' => array('type' => 'string')))))));
register_theme_feature('editor-font-sizes', array('type' => 'array', 'description' => __('Custom font sizes if defined by the theme.'), 'show_in_rest' => array('schema' => array('items' => array('type' => 'object', 'properties' => array('name' => array('type' => 'string'), 'size' => array('type' => 'number'), 'slug' => array('type' => 'string')))))));
register_theme_feature('editor-gradient-presets', array('type' => 'array', 'description' => __('Custom gradient presets if defined by the theme.'), 'show_in_rest' => array('schema' => array('items' => array('type' => 'object', 'properties' => array('name' => array('type' => 'string'), 'gradient' => array('type' => 'string'), 'slug' => array('type' => 'string')))))));
register_theme_feature('editor-styles', array('description' => __('Whether theme opts in to the editor styles CSS wrapper.'), 'show_in_rest' => true));
register_theme_feature('html5', array('type' => 'array', 'description' => __('Allows use of HTML5 markup for search forms, comment forms, comment lists, gallery, and caption.'), 'show_in_rest' => array('schema' => array('items' => array('type' => 'string', 'enum' => array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'script', 'style'))))));
register_theme_feature('post-formats', array('type' => 'array', 'description' => __('Post formats supported.'), 'show_in_rest' => array('name' => 'formats', 'schema' => array('items' => array('type' => 'string', 'enum' => get_post_format_slugs()), 'default' => array('standard')), 'prepare_callback' => static function ($formats) {
$formats = is_array($formats) ? array_values($formats[0]) : array();
$formats = array_merge(array('standard'), $formats);
return $formats;
})));
register_theme_feature('post-thumbnails', array('type' => 'array', 'description' => __('The post types that support thumbnails or true if all post types are supported.'), 'show_in_rest' => array('type' => array('boolean', 'array'), 'schema' => array('items' => array('type' => 'string')))));
register_theme_feature('responsive-embeds', array('description' => __('Whether the theme supports responsive embedded content.'), 'show_in_rest' => true));
register_theme_feature('title-tag', array('description' => __('Whether the theme can manage the document title tag.'), 'show_in_rest' => true));
register_theme_feature('wp-block-styles', array('description' => __('Whether theme opts in to default WordPress block styles for viewing.'), 'show_in_rest' => true));
}