Long time WordPress user. I just ran into this issue developing a site for a client, so I figured I'd save someone else the time figuring out how to do this.
I used this plugin: http://fullthrottledevelopment.com/password-protect-children-pages/
The limitation is that only the immediate child pages are protected. In my case I had several layers of pages and subpages, and I wanted everything to be password-protected.
So, based on this (http://codex.wordpress.org/Template_Tags/wp_list_pages#List_whole_subpages) I edited the plugin code:
// This function prints the password form if the parent page is password protected. It is called whenever 'the_content' is invoked.
function ft_password_protect_children_page_contents( $org_content ){
if ( is_page() ){
global $post;
$ancestors = end($post->ancestors);
if ( !empty($ancestors) ){
if ( post_password_required( $ancestors ) ) {
$real_post = $post;
$post = $ancestors;
echo get_the_password_form();
$post = $real_post;
return;
}
}
}
return $org_content;
}
Seems to work perfectly. Now all I do is put a password on a page, and all its subpages are protected with the same password. Makes it easy to password protect an entire section of your blog.