diff --git src/wp-includes/class-wp-customize-manager.php src/wp-includes/class-wp-customize-manager.php
index 95dfa79..ab25095 100644
--- src/wp-includes/class-wp-customize-manager.php
+++ src/wp-includes/class-wp-customize-manager.php
@@ -1380,6 +1380,32 @@ final class WP_Customize_Manager {
 				}
 			}
 
+			$post_relations = array();
+			foreach ( array_keys( $posts ) as $post_symbol ) {
+        			if( isset( $posts[ $post_symbol ]['parent'] ) ) {
+                			$post_relations[] = array(
+                			        'post_id'               => $posts[$post_symbol]['ID'],
+                			        'post_symbol'           => $post_symbol,
+                			        'parent_post_symbol'    => $posts[$post_symbol]['parent'],
+			                );
+			        }
+			}
+
+			// Translate the parent post symbol to an ID and assign it to the post_parent field
+			foreach( $post_relations as $relation ) {
+			        $post_id                = $relation['post_id'];
+			        $post_symbol            = $relation['post_symbol'];
+			        $parent_post_symbol     = $relation['parent_post_symbol'];
+
+			        if( isset( $posts[$parent_post_symbol]['ID'] ) ) {
+			                $posts[$post_symbol]['post_parent'] = $posts[$parent_post_symbol]['ID'];
+					wp_update_post( array(
+						'ID'           	=> $post_id,
+						'post_parent'	=> $posts[ $post_symbol ]['post_parent']
+					) );
+			        }
+			}
+
 			$starter_content_auto_draft_post_ids = array_merge( $starter_content_auto_draft_post_ids, wp_list_pluck( $posts, 'ID' ) );
 		}
 
diff --git src/wp-includes/theme.php src/wp-includes/theme.php
index 89eab5f..7255190 100644
--- src/wp-includes/theme.php
+++ src/wp-includes/theme.php
@@ -2174,6 +2174,7 @@ function get_theme_starter_content() {
 								'comment_status',
 								'thumbnail',
 								'template',
+								'parent',
 							)
 						);
 					} elseif ( is_string( $item ) && ! empty( $core_content[ $type ][ $item ] ) ) {
diff --git tests/phpunit/tests/customize/manager.php tests/phpunit/tests/customize/manager.php
index 0b5be85..5400b1b 100644
--- tests/phpunit/tests/customize/manager.php
+++ tests/phpunit/tests/customize/manager.php
@@ -713,6 +713,55 @@ class Tests_WP_Customize_Manager extends WP_UnitTestCase {
 	}
 
 	/**
+	 * @ticket 40807
+	 */
+	function test_import_theme_starter_content_should_support_post_parent() {
+		wp_set_current_user( self::$admin_user_id );
+
+		global $wp_customize;
+		$wp_customize = new WP_Customize_Manager();
+
+		$starter_content_config = array(
+			'posts' => array(
+				'animal' => array(
+					'post_type' 	=> 'page',
+					'post_title' 	=> 'Animal',
+				),
+				'bird' => array(
+					'post_type' 	=> 'page',
+					'post_title' 	=> 'Bird',
+					'parent'	=> 'animal'
+				),
+				'fish' => array(
+					'post_type' 	=> 'page',
+					'post_title' 	=> 'Fish',
+					'parent'	=> 'animal'
+				),
+			),
+		);
+
+		add_theme_support( 'starter-content', $starter_content_config );
+		$this->assertEmpty( $wp_customize->unsanitized_post_values() );
+		$wp_customize->import_theme_starter_content();
+		$changeset_values = $wp_customize->unsanitized_post_values();
+
+		$posts_by_name = array();
+                foreach ( $changeset_values['nav_menus_created_posts'] as $post_id ) {
+                        $post = get_post( $post_id );
+                        $post_name = $post->post_name;
+                        if ( empty( $post_name ) ) {
+                                $post_name = get_post_meta( $post->ID, '_customize_draft_post_name', true );
+                        }
+                        $posts_by_name[ $post_name ] = $post->ID;
+                }
+
+		$expected = get_post( $posts_by_name['animal'] )->ID;
+
+		$this->assertSame( $expected, get_post( $posts_by_name['bird'] )->post_parent );
+		$this->assertSame( $expected, get_post( $posts_by_name['fish'] )->post_parent );
+	}
+
+	/**
 	 * Test WP_Customize_Manager::customize_preview_init().
 	 *
 	 * @ticket 30937
