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.


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.

You may also like...

10 Responses

  1. Rob says:

    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?

  2. admin says:

    Hi Rob,

    Can you duplicate the header files, and name give them names for each page, and then use the include path shown above to call each one on a particular page?

    If you link me to the problem I’ll take a look in case it’s more complicated than that.


  3. Joe says:

    Rob this worked great and is exactly what I was looking for. You’re a gentleman and a scholar!


  4. Joe says:

    Whoops, didn’t mean to call you the wrong name there Mike! Sorry!

  5. Very nice tip here Mike. Thank you for sharing this one. This will definitely come in handy.

  6. Thanks for posting this – but I’m using WP 3.x and the file names / structure seems to have changed. I’m unable to find header.php

    Am I missing something ?

    • Mike says:

      Hi Mark

      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?

  7. Lise says:

    Hi Mike, I am using this code and getting the following error:

    ‘Parse error: syntax error, unexpected ‘<' in /usr/www/users/ypowimutud/test11/wp-content/themes/coraline_child/index.php on line 9'

    Code Snippet:

    * @package WordPress
    * @subpackage Coraline
    * @since Coraline 1.0
    if (is_page('home')){

    elseif (is_page(‘blog’)){

    else {


Leave a Reply

Your email address will not be published. Required fields are marked *

Attract more visitors

Get the latest blog updates, and email exclusive content that shows you how to:

  • Attract targeted visitors to your site
  • Engage those visitors in creative ways
  • Move visitors down the buying funnel
  • Find profitable niches to pursue

NOTE: I will NEVER spam you with cheesy promotions or share your information with anyone.