Automatically add child pages to menu

There are two possible approaches you can take.

One would be to hook into whenever a Page is published and write code to update the menu accordingly, effectively making something similar to the built-in “add top level pages” functionality. You’d need to think carefully about what you would like to happen when the Page parent is changed and so on.

So perhaps more robust than that is to hook into menu rendering and if a Page has children, insert a sub-menu using wp_list_pages. I’m not up-to-date on hooks within the default menu Walker. Last time I looked at something like this I had to use my own Walker class as a callback on wp_nav_menu. Hopefully there are now more hooks you can use in there if you look at the source.