Create multiple headers in WordPress

The Problem

I’ve enounterd the need for this on several projects and thought it might help. In this case, I didn’t want the featured slider to appear on every page, as it was located in the header. You too, may want to display page-specific headers based on certain conditions. Well, it’s not that hard with the “if” and “else” statements. Get ready to learn some very basic PHP!

The Fix

First, open your header.php file and copy and paste its contents into a new file. Name this new file “headerwithnofeaturedslider.php” or whatever is more semantic to you. Make sure you remove the offending featured slider portion (or include/remove what you want from this version of the header). Save and upload this new header file to your site.

Now you have two headers; you could easily make another, and another, and so on. Next we need to call them to appear on the pages in WordPress. In my case, I wanted to include the “headerslider.php” only on my home page and a unique header on my blog Every other page would load the normal header. So in my index.php file I replace the normal header tag with to include the new header file we created, like so:

}
elseif (is_page('blog')){
}
else {
}
?>

What we have here is a code snippet that will load any of three headers depending on the page template used.

Let’s say that you wanted to load a certain header based on categories or tags even. You could do something like this:

?>

All other pages will load the regular header. As you can see, it’s very simple. The most involving part would be changing your headers.

Mike

Michael Meisner is a code-slinging, data crunching, growth hacking extraordinaire. He combines these powers to create traffic generation strategies and drive brand awareness for clients he works with. When he's not staring at a computer screen he can be found sipping a glass of wine with his Pit Bull and wife by his side.

10 Responses

Hi Mike, I’m new to developing on wordpress and I’m currently developing a site that I need to be able to change the header file on every page(its not just reloading an image, im using a plugin to load in additional content) .
(I’m not experienced in php) How can I get the different pages to call the different headers?
?

You’re most welcome, and I’ve sorta fallen off the WP development platform, but I did just log into my FTP account. I do see a “header.php” file in all themes, even the ones on WP 3+. You should def. see that file. What theme are you using?