Get a Different WordPress Theme on Different Pages or Posts


Have you ever wanted to use more than one WordPress theme on a site at same time? Well, it’s possible.

Of course you could create a page template or even a specific post template and then style them as you like. But let’s be honest – most of us don’t have the design skills to code up a template from scratch and make it look good.

Fortunately for us design-challenged folks, we don’t have to worry. There’s a way to assign whatever theme you like to specific pages or posts with a plugin called HeadSpace2.

HeadSpace2, or “HeadSpace2 SEO” as it’s officially called, it billed primarily as an SEO plugin (as the name would indicate). But it does have one little function in it that will allow you do as mentioned above – give individual pages and posts their own themes. So in this post we’ll go over how to do that (including a video at the end that runs through the process).

Featured Plugin - WordPress Ecommerce Shopping Cart Plugin

Out of all the WordPress ecommerce plugins available, MarketPress has got to be the winner - easy to configure, powerful functionality, multiple gateways and more. A simply brilliant plugin!
Find out more

 

Finding the Correct Module

As mentioned, this plugin contains many functions, most of them completely unrelated to what we’re trying to do here. And so it may be a little difficult to find the “Page-specific Theme” module that you need to activate.

First, on the plugin’s Settings page, you’ll want to go to the “Page Modules” section.

 

Once on the “Page Modules” page, find the “Page-specific Theme” module and drag it to either the “Simple” section or the “Advanced” section. Modules in the “Simple” section will be displayed by default. Modules in the “Advanced” section will only be displayed after the “advanced” link is clicked.

 

Activating Themes on the Write/Edit Screen

Once the “Page-specific Theme” module is set up, you will see an option to choose a theme just below the area where you write your Pages or Posts.

As mentioned before, if you put the “Page-specific Theme” module in the “Simple” section, it will be displayed automatically. If you put it in the “Advanced” section, you will need to click the “advanced” link in order to see it.

 

 

Choose your theme, and then update or publish your post or page, and you should see it has a different theme.

 

Featured Plugin - WordPress Membership Site Plugin

If you're thinking about starting a paid, or just private, membership site then this is truly the plugin you've been looking for. Easy to use, massively configurable and ready to go out of the box!
Find out more

 

The Result

And here’s a look at the homepage of a site and a page on that same site running a completely different theme.

 

Possible Problems with Menus

One problem I did find with this solution is that with some themes, you may find that the menus on the pages with the “different” themes don’t look right. The problem, it seems, is that themes will often take ALL pages and make them menu items unless you specify which items you’d like to make menu items through your Menu section (Appearance > Menus).

And so if you have set up menus on your main theme, you may find that the “different” theme (i.e. the theme you’re using for specific pages or posts) doesn’t display the menus you’ve set up. Instead, it displays all of your Pages as menu items.

 

 

It’s important to note that this is not true for every theme. Some themes will work just fine.  However, if you do have this issue, then there’s a workaround for you.

 

Featured Plugin - WordPress Appointments Plugin

Take, set and manage appointments and client bookings without having to leave WordPress. Appointments+ makes it easy.
Find out more

 

Fixing the Menu Problems

It seems the reason for these problems is that different themes sometimes give their menus different names. And so if the name of the menus on the “different” theme is not the same as the menus on default theme, you’ll end up with this problem.

In order to fix it, you will need to change the name of the menus on the “different” theme to be the same as the menus on the default theme.

In most cases, this is going to involve a main menu bar in the header section of your theme. (In may involve more than this, but by going over this example, you will get the idea and then be able to track down other menu problems if you have them.)

 

Find the Menu Section in Your Default Theme

To find the name of your menu sections in your default theme, go to Appearance > Editor > Header – header.php. In this file, search for the following:

wp_nav_menu

 

In the Twenty Twelve theme, I did this search and found a section that looks like the following:

<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

 

I then went and searched for the menu section in the theme that I was using as my “different” theme.

In order to get to this other theme without activating it as the default them, go to Appearance > Editor > then in the top right-hand of the page, select the “different” theme from the dropdown box where it says, “Select theme to edit.”

Once your theme is selected, go to Header – header.php and search again for the following:

wp_nav_menu

 

Here’s the section I found in the “different” theme:

<?php if ( has_nav_menu( 'main-menu' ) ) : wp_nav_menu( array('menu' => 'Main Menu' )); else : ?>

 

In the default theme, you’ll notice that the menu position is named “primary.” Here’s a look at that code again:

<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

 

And so that’s what we need to change the name to in our “different” theme.  Again, here’s the original code in the “different” theme:

<?php if ( has_nav_menu( 'main-menu' ) ) : wp_nav_menu( array('menu' => 'Main Menu' )); else : ?>

 

And so we’re going to change that first instance of “main-menu” to “primary.” And so now the code looks like this:

<?php if ( has_nav_menu( 'primary’) ) : wp_nav_menu( array('menu' => 'Main Menu' )); else : ?>

 

And now the menus in our theme display correctly. Here’s a look.

 

The code in different themes will obviously be different, and so you may need to play around with things a little to get it to work. Before doing so, make sure you’ve made a copy of the original code, so you can easily get things back to normal if need be. (Also, of course, you can just reinstall the theme again if things go too awry.

 

Video of the Process

And here’s a video of the process above.

 

Featured Plugin - WordPress Google Maps Plugin

Simply insert google maps into posts, sidebars and pages - show directions, streetview, provide image overlays and do it all from a simple button and comprehensive widget.
Find out more
Tags

Comments (43)

    • Marc – I’m not sure. I didn’t test it. But I don’t see why it wouldn’t. As mentioned, some themes will present a problem with menus (which you can fix as noted), but if you’re using OptimizePress for squeeze pages/landing pages, you probably won’t have any menus to deal with anyway.

      • The big problem with OptimizePress is that it is a theme, not a plugin. So, without something like this, you have to use OP to style your site as well as your landing/conversion pages. We’ve gotten around it by using multisite with alternate themes in different subsites, one being OptimizePress. But this required special approval from them becuase it bumps up against their license terms. In general, they do not allow use of OP on multisite, due to the fact that you can host many blogs, from many users. Our multisite installations are all owned and operated by me and my company, so they gave me an advance approval under tight use conditions. But, this plugin may be the better way around it anyway. Multisite is great for setting up multiple offers under one roof, but site management is much more difficult as you have to carry over every setting from one to the other. Being able to just select a theme, not just a template, for a specific area of the site is quite nice. Thanks for finding this. I’ll be giving it a test soon.

  1. Thanks Joseph. I’m a total newbie to web design, ‘teaching myself’ as one would say. But obviously teaching myself through all the wonderful help provided by people like yourself. Many thanks, the ‘varied theme’ functionality was something I was surprised wasn’t standard in WP and finding your solution, utilising Headspace prevented me from having to rethink… well, lots! Cheers for sharing.

  2. Interresting plugin, it might make my life easier.

    Before trying it i got a question for you regarding the end result:

    - I’m interested in having a different page-style for page.php for my theme.

    I have read WP doc about Page Template and how to use Custom Page Template according to the page loading hierarchy of WP. (http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates)

    Beside making life easier with an interface, which is great, is the Page Specific Theme option different than what the WP doc is saying ? Your plugin is doing more than just “custom page theme” but I want to know about any different result in that specific function.

    Thanks.

  3. thibaud – I’m not exactly sure of your question, but in either case, it’s about changing the look/style of the page – yes. As mentioned at the beginning of the post, you can obviously use a new page template, but if you want a somewhat sophisticated design, you’ll have to know what you’re doing in terms of design. With this plugin, you can use the design of whatever already-made theme you like.

  4. Thibaud – yeah, I that looks like a small change that you can do either in your template file or your css file (probably the css file). It will depend on how your theme is set up. I’m afraid I’m no css expert, however. You might have better luck asking on the wordpress.org forums. Or even better, simply ask the author of your theme.

    (By the way — the plugin mentioned in this post is not our plugin. We’re just reporting on it hoping that it helps people out.)

  5. I’m with everyone else, fantastic find! Pretty crazy place to find it – haha!

    My question might overlap with Uros question about changing settings. I am getting the alternate theme to work ok, but what want is the home page of that alt theme, as it has a nice overview of the whole blog, but I’m not sure if there’s a way to make a page a sort of “alt home page”?

  6. I installed this plugin and am using wp 3.5 i cant drag or drop the disabled options– is there any way to enable the the cutom theme option in an alternative way?

    I dont know why this is happening i can drag and drop widgets though

  7. I’ve installed the plugin and it’s working, but I’m wondering what I’d need to do to have different headers on different sections of the site? Is that possible? Right now one header is automatically applying itself no matter what theme I use…

    • Dora – That sounds odd to me, and it shouldn’t work that way. You should get the header of the theme you’ve applied, not the same header for different themes. You might try contacting the plugin author if that’s what’s happening.

      • Ah, I thought maybe that was normal! It is odd, the rest of the layout changes, just not the header…I’ll get in touch with the plugin author, thanks for the input!

  8. Hi Joe thanks for this great tip! I’m having a little trouble with the display of the sub menu, could you perhaps give me some pointers?

    Am I allowed to past code here?

    Thanks a bunch,
    Nick

  9. Hi Joe, thanks for writing this up… I can get the page-specific themes to work with most themes. However, it does not work with a child theme of Oxygen. Any ideas on how to make it work? Thanks.

  10. Heey Joe. Do you have any ways to get around if I lets say.. wanted to use a specifik pagetemplate for that theme? Any ways to do that? :)

    • Christian – I’m not sure about that. Maybe you could make the default post template for the new theme the page template you want to use. In other words, make the default posts look like the page template you want by downloading the theme and changing it, then uploading it again.

  11. Hello Joe, how are you?..
    I was looking at the plugin website (developer) and it says “This plugin is no longer actively maintained”.

    Do you know about another alternative for the same purpose?

    Thank you

  12. Hi Joe,
    Great article. Question: How do you customize the alternate themes with custom header images, background images, Text color, etc. so they are completely different?

  13. great plugin.. got the same menu problem with this plugin though.. besides your sollution there is another easy sollution which doesnt need any editing with the code.. just go to the main page of all your pages at the dashboard where all your pages are listed.. there you can control and manage for each page if you want to add it to the menu or leave it out. you can also control in which order the pages will be added at the menu or to put them in a drop down menu..

Participate