So this is the way I eventually achieved this.
I put the following code into my functions.php (actually into the functions.php of my child theme to keep it safe from updates) It has just one change to the original code from the link in the question thanks to @birgire.
/**
* auto_child_page_menu
*
* class to add top level page menu items all child pages on the fly
* @author Ohad Raz <[email protected]>
* with a tweak by birgire <https://wordpress.stackexchange.com/users/26350/birgire>
*/
class auto_child_page_menu
{
/**
* class constructor
* @author Ohad Raz <[email protected]>
* @param array $args
* @return void
*/
function __construct($args = array()){
add_filter('wp_nav_menu_objects',array($this,'on_the_fly'));
}
/**
* the magic function that adds the child pages
* @author Ohad Raz <[email protected]>
* @param array $items
* @return array
*/
function on_the_fly($items) {
global $post;
$tmp = array();
foreach ($items as $key => $i) {
$tmp[] = $i;
//if not page move on
if ($i->object != 'page'){
continue;
}
$page = get_post($i->object_id);
//if not parent page move on
if (!isset($page->post_parent) || $page->post_parent != 0) {
continue;
}
$children = get_pages( array( 'sort_column' => 'menu_order', 'child_of' => $i->object_id) ); //fetching the child pages according to the order set on the page
foreach ((array)$children as $c) {
//set parent menu
$c->menu_item_parent = $i->ID;
$c->object_id = $c->ID;
$c->object = 'page';
$c->type = 'post_type';
$c->type_label = 'Page';
$c->url = get_permalink( $c->ID);
$c->title = $c->post_title;
$c->target = '';
$c->attr_title = '';
$c->description = '';
$c->classes = array('','menu-item','menu-item-type-post_type','menu-item-object-page');
$c->xfn = '';
$c->current = ($post->ID == $c->ID)? true: false;
$c->current_item_ancestor = ($post->ID == $c->post_parent)? true: false; //probably not right
$c->current_item_parent = ($post->ID == $c->post_parent)? true: false;
$tmp[] = $c;
}
}
return $tmp;
}
}
new auto_child_page_menu();
Thx everyone for your help...
array( 'sort_column' => 'menu_order', 'child_of' => $i->object_id) )
as suggested in the Codex ?