I’ve done something similar, and here’s how I handled it.
First off, instead of using child pages, I put all the data on one page, and I stored the would-be “children” as postmeta. My custom post type editing page had 7 or 8 editors in it. This kept the WordPress admin cleaner and it made it easier to edit my posts, since I didn’t start the post in one place then have to create 7 more pages and edit them. I won’t include that code, as it’s covered well elsewhere.
I navigated the page through rewrite tags. Here is what was in my functions.php file for this (all sample code modified for your data):
add_action('init', 'wpse_74829_rewrite_additions');
function wpse_74829_rewrite_additions() {
add_rewrite_tag( '%section%', '(gallery|features|accessories)' );
add_rewrite_rule('^([^/]+)/(gallery|features|accessories)/?', 'index.php?car=$matches[1]§ion=$matches[2]', 'top');
}
Next, I had a helper to display the content depending on the section.
<?php
function wpse_74829_the_section( $section ) {
$content = get_post_meta( get_the_ID(), $section, true );
if ( $content ) {
$content = str_replace( ']]>', ']]>', $content );
echo apply_filters( 'the_content', $content );
}
}
?>
And here’s what the inside of my loop looked like, with regards to the content:
<div class="entry-content">
<?php
switch ( $wp_query->query_vars['section'] ) {
case 'gallery':
wpse_74829_the_section( 'gallery' );
break;
case 'features':
wpse_74829_the_section( 'features' );
break;
case 'accessories':
wpse_74829_the_section( 'accessories' );
break;
default:
the_content();
break;
}
?>
</div>
Lastly, I had a helper for my links:
function wpse_74829_the_section_url( $section ) {
$url = get_permalink();
if ( strpos( $url, '?') ) echo add_query_arg( 'section', $section );
else echo $url . $section . "https://wordpress.stackexchange.com/";
}
And then I could link to the sections within the page like,
<?php wpse_74829_the_section_url( 'gallery' ); ?>