Question: I have a multisite WordPress project with a main site using **Theme A** and all 'sub'-sites using **Theme B**.

Both **Theme A** and **Theme B** are Child Themes.

I want to import the header file from Theme A into Theme B, so I can show that header before Theme B's header - how would I implement this header properly?

I need a way that ensures the styling and functions (`bloginfo()` etc) of Theme A are maintained.

Answer: 
As you have now stated that both Theme A and Theme B are already Child Themes, perhaps you could try adding this to your **funcions.php** file in Theme B -

```
add_action('wp_enqueue_scripts', 'enqueue_front_scripts');
function enqueue_front_scripts(){

    /** Switch to the parent blog */
    switch_to_blog(1);  // You may need to change the ID, I don't know what ID you main site has

    /** Grab the path of the parents 'header.php' file */
    $main_header_style_path =  get_stylesheet_directory_uri() . '/header.css';

    /** Restore the current blog */
    restore_current_blog();

    /** Enqueue the main header styling */
    wp_enqueue_style('main-header', $main_header_style_path);

}

function get_main_header(){

    /** Switch to the parent blog */
    switch_to_blog(1);  // You may need to change the ID, I don't know what ID you main site has

    /** Grab the path of the parents 'header.php' file */
    $main_header_path =  get_stylesheet_directory_uri() . '/header.php';

    /** Output the main header */
    require_once($main_header_path);

    /** Restore the current blog */
    restore_current_blog(); // Don't restore until after you have included the header, otherwise you 'get_blogino()', etc. calls will reference Theme B

}

```

And then to include both headers you'd do this (note that the header file in both themes would simply be called **header.php**) -

```
get_main_header();
get_header();

```

I suggest that you have a read of the [Function Reference for `switch_to_blog()`](http://codex.wordpress.org/Function_Reference/switch_to_blog) for more information.

Update
======

I forgot to mention that you would also still need to seperate your header styling in to it's own `header.css` file in Theme A, and then enqueue this in both Theme A and Theme B.

I have update my code example about to reflect this.
You could make Theme B a [**Child Theme**](http://codex.wordpress.org/Child_Themes) of Theme A, and then create **header-b.php** in Theme B (as opposed to header.php), then just include that after your call to

```
get_header();
require_once("header-b.php")

```

To ensure that all of your styling is carried over from the parent, include this in your **functions.php** file of Theme B -

```
add_action('wp_enqueue_scripts', 'my_front_scripts');
function my_front_scripts(){

    wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');

}

```

If it really is only your header style that you wish to use, it may even be worth creating that in it's own CSS file (**header.css**) and enqueuing that - obviously you'd need to also enqueue that in Theme A.