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:
<?php if (is_page('slider')){ <?php include(TEMPLATEPATH.'/headerslider.php'); ?> } elseif (is_page('blog')){ <?php include(TEMPLATEPATH.'/headerblog.php'); ?> } else { <?php include(TEMPLATEPATH.'/headerdefault.php'); ?> } ?>
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:
<?php if (is_category('Copywriting Basics')) { <?php include(TEMPLATEPATH.'/headerslider.php'); ?> <?php } elseif (is_category('Copywriting Creativity')) { <?php include(TEMPLATEPATH.'/headerblog.php'); ?> ?> <?php } else { <?php include(TEMPLATEPATH.'/headerdefault.php'); ?> <?php } ?>
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.
Related posts:
- One category page, multiple headings Conditional PHP statements can be your best friend when developing...
- Deliver targeted ads to visitors using WordPress This is the Targeted Ads Approach Wouldn’t it be...
- 9 Essential WordPress SEO Plugins and Tips WordPress is the best platform to develop a site on...
Related posts brought to you by Yet Another Related Posts Plugin.




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?
?
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.
thanks
Rob this worked great and is exactly what I was looking for. You’re a gentleman and a scholar!
Thanks!
Whoops, didn’t mean to call you the wrong name there Mike! Sorry!
Very nice tip here Mike. Thank you for sharing this one. This will definitely come in handy.
So in my index.php file I replace the normal header tag with to include the new header file we created, like so:
http://www.mikemeisner.com/wp-admin/profile.php
[sourcecode language='php'] [/sourcecode]
Not exactly sure what this means?
Replace with ???
Yes, that’s correct. You will use PHP if/else statements to load certain headers depending on the circumstances.
I’m in the same boat as Victoria. What in the world does this mean?
http://www.mikemeisner.com/wp-admin/profile.php
[sourcecode language='php'] [/sourcecode]
In my index.php file, the call for the header looks like this:
What would I change that to? Thanks and sorry for being confused.
Hi Kristy – Yea, so my syntax highlighter was messed up, but I just went through and fixed up the code. Take another look and it should make sense. I included a second example of how to load headers based on categories, just to further demonstrate the idea.