get_theme_starter_content

The timeline below displays how wordpress function get_theme_starter_content has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * Expands a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => implode('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n", _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&ndash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n", _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of 'link_home'.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content'))), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('You might be an artist who would like to introduce yourself and your work here or maybe you are a business with a mission to describe.', 'Theme starter content'))), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content'))), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content')))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            /*
             * All that's left now are posts (besides attachments).
             * Not a default case for the sake of clarity and future work.
             */
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 5.9

/**
 * Expands a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => implode('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n", _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&ndash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n", _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of 'link_home'.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content'))), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content'))), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content'))), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content')))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments).
            // Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 5.6

/**
 * Expands a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => implode('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n" . _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&ndash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n" . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of 'link_home'.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content'))), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content'))), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content'))), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content')))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments).
            // Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 5.5

/**
 * Expands a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n" . _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&ndash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n" . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of 'link_home'.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content'))), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content'))), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content'))), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content')))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments).
            // Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 5.4

/**
 * Expand a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n" . _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&ndash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n" . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of 'link_home'.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content'))), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content'))), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content'))), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content')))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments).
            // Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 5.3

/**
 * Expand a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n" . _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&mdash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n" . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of link_home.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content'))), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content'))), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content'))), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => sprintf("<!-- wp:paragraph -->\n<p>%s</p>\n<!-- /wp:paragraph -->", _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content')))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments). Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 8.1

/**
 * Expand a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<strong>' . _x('Address', 'Theme starter content') . "</strong>\n", _x('123 Main Street', 'Theme starter content') . "\n" . _x('New York, NY 10001', 'Theme starter content') . "\n\n", '<strong>' . _x('Hours', 'Theme starter content') . "</strong>\n", _x('Monday&mdash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . "\n" . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content'))), 'filter' => true, 'visual' => true)), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'), 'filter' => true, 'visual' => true)), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of link_home.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content')), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content')), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content')), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content'))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments). Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 4.8

/**
 * Expand a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<p><strong>' . _x('Address', 'Theme starter content') . '</strong><br />', _x('123 Main Street', 'Theme starter content') . '<br />' . _x('New York, NY 10001', 'Theme starter content') . '</p>', '<p><strong>' . _x('Hours', 'Theme starter content') . '</strong><br />', _x('Monday&mdash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . '<br />' . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content') . '</p>')))), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'))), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url('/')), 'page_home' => array(
        // Deprecated in favor of link_home.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content')), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content')), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content')), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content'))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments). Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 7.1

/**
 * Expand a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<p><strong>' . _x('Address', 'Theme starter content') . '</strong><br />', _x('123 Main Street', 'Theme starter content') . '<br />' . _x('New York, NY 10001', 'Theme starter content') . '</p>', '<p><strong>' . _x('Hours', 'Theme starter content') . '</strong><br />', _x('Monday&mdash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . '<br />' . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content') . '</p>')))), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'))), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('link_home' => array('type' => 'custom', 'title' => _x('Home', 'Theme starter content'), 'url' => home_url()), 'page_home' => array(
        // Deprecated in favor of home_link.
        'type' => 'post_type',
        'object' => 'page',
        'object_id' => '{{home}}',
    ), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content')), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content')), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content')), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content'))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments). Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}

WordPress Version: 4.7

/**
 * Expand a theme's starter content configuration using core-provided data.
 *
 * @since 4.7.0
 *
 * @return array Array of starter content.
 */
function get_theme_starter_content()
{
    $theme_support = get_theme_support('starter-content');
    if (is_array($theme_support) && !empty($theme_support[0]) && is_array($theme_support[0])) {
        $config = $theme_support[0];
    } else {
        $config = array();
    }
    $core_content = array('widgets' => array('text_business_info' => array('text', array('title' => _x('Find Us', 'Theme starter content'), 'text' => join('', array('<p><strong>' . _x('Address', 'Theme starter content') . '</strong><br />', _x('123 Main Street', 'Theme starter content') . '<br />' . _x('New York, NY 10001', 'Theme starter content') . '</p>', '<p><strong>' . _x('Hours', 'Theme starter content') . '</strong><br />', _x('Monday&mdash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content') . '<br />' . _x('Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content') . '</p>')))), 'text_about' => array('text', array('title' => _x('About This Site', 'Theme starter content'), 'text' => _x('This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content'))), 'archives' => array('archives', array('title' => _x('Archives', 'Theme starter content'))), 'calendar' => array('calendar', array('title' => _x('Calendar', 'Theme starter content'))), 'categories' => array('categories', array('title' => _x('Categories', 'Theme starter content'))), 'meta' => array('meta', array('title' => _x('Meta', 'Theme starter content'))), 'recent-comments' => array('recent-comments', array('title' => _x('Recent Comments', 'Theme starter content'))), 'recent-posts' => array('recent-posts', array('title' => _x('Recent Posts', 'Theme starter content'))), 'search' => array('search', array('title' => _x('Search', 'Theme starter content')))), 'nav_menus' => array('page_home' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{home}}'), 'page_about' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{about}}'), 'page_blog' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{blog}}'), 'page_news' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{news}}'), 'page_contact' => array('type' => 'post_type', 'object' => 'page', 'object_id' => '{{contact}}'), 'link_email' => array('title' => _x('Email', 'Theme starter content'), 'url' => 'mailto:wordpress@example.com'), 'link_facebook' => array('title' => _x('Facebook', 'Theme starter content'), 'url' => 'https://www.facebook.com/wordpress'), 'link_foursquare' => array('title' => _x('Foursquare', 'Theme starter content'), 'url' => 'https://foursquare.com/'), 'link_github' => array('title' => _x('GitHub', 'Theme starter content'), 'url' => 'https://github.com/wordpress/'), 'link_instagram' => array('title' => _x('Instagram', 'Theme starter content'), 'url' => 'https://www.instagram.com/explore/tags/wordcamp/'), 'link_linkedin' => array('title' => _x('LinkedIn', 'Theme starter content'), 'url' => 'https://www.linkedin.com/company/1089783'), 'link_pinterest' => array('title' => _x('Pinterest', 'Theme starter content'), 'url' => 'https://www.pinterest.com/'), 'link_twitter' => array('title' => _x('Twitter', 'Theme starter content'), 'url' => 'https://twitter.com/wordpress'), 'link_yelp' => array('title' => _x('Yelp', 'Theme starter content'), 'url' => 'https://www.yelp.com'), 'link_youtube' => array('title' => _x('YouTube', 'Theme starter content'), 'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA')), 'posts' => array('home' => array('post_type' => 'page', 'post_title' => _x('Home', 'Theme starter content'), 'post_content' => _x('Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content')), 'about' => array('post_type' => 'page', 'post_title' => _x('About', 'Theme starter content'), 'post_content' => _x('You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content')), 'contact' => array('post_type' => 'page', 'post_title' => _x('Contact', 'Theme starter content'), 'post_content' => _x('This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content')), 'blog' => array('post_type' => 'page', 'post_title' => _x('Blog', 'Theme starter content')), 'news' => array('post_type' => 'page', 'post_title' => _x('News', 'Theme starter content')), 'homepage-section' => array('post_type' => 'page', 'post_title' => _x('A homepage section', 'Theme starter content'), 'post_content' => _x('This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content'))));
    $content = array();
    foreach ($config as $type => $args) {
        switch ($type) {
            // Use options and theme_mods as-is.
            case 'options':
            case 'theme_mods':
                $content[$type] = $config[$type];
                break;
            // Widgets are grouped into sidebars.
            case 'widgets':
                foreach ($config[$type] as $sidebar_id => $widgets) {
                    foreach ($widgets as $id => $widget) {
                        if (is_array($widget)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $widget = array($core_content[$type][$id][0], array_merge($core_content[$type][$id][1], $widget));
                            }
                            $content[$type][$sidebar_id][] = $widget;
                        } elseif (is_string($widget) && !empty($core_content[$type]) && !empty($core_content[$type][$widget])) {
                            $content[$type][$sidebar_id][] = $core_content[$type][$widget];
                        }
                    }
                }
                break;
            // And nav menu items are grouped into nav menus.
            case 'nav_menus':
                foreach ($config[$type] as $nav_menu_location => $nav_menu) {
                    // Ensure nav menus get a name.
                    if (empty($nav_menu['name'])) {
                        $nav_menu['name'] = $nav_menu_location;
                    }
                    $content[$type][$nav_menu_location]['name'] = $nav_menu['name'];
                    foreach ($nav_menu['items'] as $id => $nav_menu_item) {
                        if (is_array($nav_menu_item)) {
                            // Item extends core content.
                            if (!empty($core_content[$type][$id])) {
                                $nav_menu_item = array_merge($core_content[$type][$id], $nav_menu_item);
                            }
                            $content[$type][$nav_menu_location]['items'][] = $nav_menu_item;
                        } elseif (is_string($nav_menu_item) && !empty($core_content[$type]) && !empty($core_content[$type][$nav_menu_item])) {
                            $content[$type][$nav_menu_location]['items'][] = $core_content[$type][$nav_menu_item];
                        }
                    }
                }
                break;
            // Attachments are posts but have special treatment.
            case 'attachments':
                foreach ($config[$type] as $id => $item) {
                    if (!empty($item['file'])) {
                        $content[$type][$id] = $item;
                    }
                }
                break;
            // All that's left now are posts (besides attachments). Not a default case for the sake of clarity and future work.
            case 'posts':
                foreach ($config[$type] as $id => $item) {
                    if (is_array($item)) {
                        // Item extends core content.
                        if (!empty($core_content[$type][$id])) {
                            $item = array_merge($core_content[$type][$id], $item);
                        }
                        // Enforce a subset of fields.
                        $content[$type][$id] = wp_array_slice_assoc($item, array('post_type', 'post_title', 'post_excerpt', 'post_name', 'post_content', 'menu_order', 'comment_status', 'thumbnail', 'template'));
                    } elseif (is_string($item) && !empty($core_content[$type][$item])) {
                        $content[$type][$item] = $core_content[$type][$item];
                    }
                }
                break;
        }
    }
    /**
     * Filters the expanded array of starter content.
     *
     * @since 4.7.0
     *
     * @param array $content Array of starter content.
     * @param array $config  Array of theme-specific starter content configuration.
     */
    return apply_filters('get_theme_starter_content', $content, $config);
}