Use get_header($name)
where $name
corresponds to a file in your theme with the following convention:
header-{name}.php
So the following calls correspond to theme files in this manner:
get_header('style1') //header-style1.php
get_header('style2') //header-style2.php
get_header('style3') //header-style3.php
Example:
<?php
if($options['header_style']) {
if(is_page('header2')) {
get_header( 'style2' );
} elseif(is_page('header3')) {
get_header( 'style3' );
} else {
//dynamically generating the name
get_header( 'style' . $options['header_style'] );
}
}
//etc...
?>
Of course the $name
can be anything you want.
See http://codex.wordpress.org/Function_Reference/get_header for more details.
As for your menu, you can link to the corresponding page that displays the desired header or you could in fact get more complex than that and have the menu items correspond to rewrite rules and query vars that then invoke different header templates.
But let’s see if the above helps you any before we go deeper.