Suppose you want your WordPress installation to have one layout and CSS styling for some pages be completely different from the layout and styling for other pages. For example, you might like to have a members only section have a completely different style than the public side of your site. Some WordPress users suggest using multiple installations of WordPress. Another way to do it would be to have two different headers and two different css files used in conjunction with page templates. Another advantage to this technique is there is no need to edit any of the HTML or add any additional CSS classes or IDs.

To use this technique you will need a text editor, an ftp client, and ftp access to your server. I recommend using TextWrangler for code editing and Cyberduck for the ftp client if you do not have Adobe Dreamweaver. As always, before making any changes to your files, make sure you back-up your database and theme files.

For this tutorial I’ll use the public style/member style scenario. Ready?

Here’s how to do it:

For the public style of the site you will continue to use the regular header.php and style.css.

For the member style you will need to do as follows:

Open up header.php in a texteditor and rename it by saving as memberheader.php and then upload this file. This essentially makes a copy of the original header but with a new name.

Open up style.css and rename it by saving as memberstyle.css and then upload this file. This makes a copy of the original stylesheet but with a new name.

Attach that new stylesheet to your new header by finding


<?php bloginfo('stylesheet_url'); ?>

in the memberheader.php and replacing with with the file path to your new memberstyle.css stylesheet e.g.

http://www.yourwebsite/wp-content/themes/yourtheme/newstyle.css

Now create a page template. Open up index.php or page.php in your text editor and save/upload as committeepages.php.

Add this to the very top of the page template before all other code:


<?php /* Template Name: Committee Pages*/?>

Now find this:


<?php get_header(); ?>

And replace it with this:


<?php include (TEMPLATEPATH . '/memberheader.php'); ?>

Now the theme has not one but TWO stylesheets. For all member pages just go to edit pages in the admin of your site, select the page to edit, then select your new template and that new stylesheet will apply to it. Leaving the page set to the Default will keep the original header and style.css.

To make the member pages look different from the public pages just edit either one of the stylesheets and change the look/layout there.