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.
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.
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 ?
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?
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:
<?php
/**
* @package WordPress
* @subpackage Coraline
* @since Coraline 1.0
*/
if (is_page('home')){
}
elseif (is_page(‘blog’)){
}
else {
}
?>