Честно перелопатила щас весь форум.
На вопросы близкие к моему лучше всего дают ответы Ю Б и Sonika.
Уже попробовала  плагины Nautic и Excluder. Да, странницы в виджете сайдбара не показыватся, какие я отключила от показа.
Но как подправить  header.php чтобы показывались только желаемые страницы. Т.е. вносить их туда вручную.
Привожу место из моего header.php об этом.
<div id="nav">
<?php function get_the_pa_ges() {
  global $wpdb;
  if ( ! $these_pages = wp_cache_get('these_pages', 'pages') ) {
     $these_pages = $wpdb->get_results('select ID, post_title from '. $wpdb->posts .' where post_status = "publish" and post_type = "page" order by ID');
   }
  return $these_pages;
 }
 function list_all_pages(){
$all_pages = get_the_pa_ges ();
foreach ($all_pages as $thats_all){
$the_page_id = $thats_all->ID;
if (is_page($the_page_id)) {
  $addclass = ' class="current_page"';
  } else {
  $addclass = '';
  }
$output .= '<li' . $addclass . '><a href="'.get_permalink($thats_all->ID).'" title="'.$thats_all->post_title.'"><span>'.$thats_all->post_title.'</span></a></li>';
}
return $output;
 }
?>
<ul>
<?php
if (is_home()) {
  $addclass = ' class="current_page"';
  } else {
  $addclass = '';
  }
echo "<li" . $addclass . "><a href='" . get_option('home') . "' title='Home'><span>Home</span></a></li>";
echo list_all_pages();?>
</ul>
	 
				
Чтобы не разбираться во всей этой самопальной фиговине, можно изменить запрос на такой
select ID, post_title from ‘. $wpdb->posts .’ where post_status = "publish" and post_type = "page" and ID not in(1, 2, 3) order by ID
1, 2 ,3 – иды стр., которые надо отключить (аналог exclude у wp_list_pages)
или
… and ID in(4, 5, 6) ….
4, 5, 6 – иды стр., которые нужно вывести (аналог include)
Хотя лично я выкинул бы это всё нафиг и использовал штатный вызов wp_list_pages(). WP уже давно сам умеет ставить класс current_page_item текущей странице.