You can customize the look and feel for a specific page within the same theme using some of these methods (maybe more):
- Use a dedicated template for specific pages. For example, if the ID of your page is
45
you can create a template with the file name page-45.php
. See template hierarchy.
- Use a reusable page template. See page templates in Codex.
- Use the filter
template_include
filter to use any template file you may want, from any location, for you page. See template_include
documentation.
If you need help with any of these options, you can search this site about them or post a new question if don't find the answer.
There are also methods to change the active theme, I've not fully tested but this piece of code should work (in a plugin file):
add_filter( 'template', 'cyb_page_theme' );
add_filter( 'stylesheet', 'cyb_page_theme' );
add_filter( 'option_template', 'cyb_page_theme' );
add_filter( 'option_stylesheet', 'cyb_page_theme' );
function cyb_page_theme( $template = '' ) {
// Change the number with the ID/slug of the specific page
if( is_page( 20394 ) ) {
// change with the template name of the theme you want to use
$template = 'twentyfifteen';
}
return $template;
}
If you need to dinamically assign a theme to a page, you could use a meta box and a custom meta field to store the association.