• jjfossey

    (@jjfossey)


    I was wondering if a different template can be used for certain pages within a WordPress site. Is this possible? Or am I limited to using just one template throughout the site?

    Thanks.

Viewing 3 replies - 1 through 3 (of 3 total)
  • esmi

    (@esmi)

    You can create different custom Page templates and apply them on an ad-hoc basis.

    webmaster887

    (@webmaster887)

    I have qurstion : how can apply a custom theme for a single page? the filter template is not working .. I’m attaching the code below

    <?php
    /*
    Plugin Name: ThemeSelect_OOPS_NEW
    Plugin URI:
    Description: This will allow admin chose a theme for a new page
    Version: 0.0.1
    Author:
    Author URI:
    License: GPL
    */
    class ThemeSelect
    {
    	function ThemeSelect()
    	{
    		add_action('admin_menu',array(&$this,'add_theme_box'));
    		add_action('save_post',array(&$this,'save_theme'));
    		add_filter('template', array(&$this,'get_post_template'));
    		add_filter('stylesheet', array(&$this,'get_post_stylesheet'));
    	}
    	function add_theme_box() /* Adds a custom field to set theme */
    	{
    	if( function_exists( 'add_meta_box' ))
    	{
    		add_meta_box( 'theme', 'Select Theme',array(&$this, 'show_theme_selector'),'page','normal', 'high');
    	}
    	}
    	function show_theme_selector($post)  /* Loads the select menu for the theme selector*/
    	{
    		$themes=get_themes();
    		$postid=$post->ID;
    		if(get_post_meta($postid,'theme',true))
    		$default_theme=get_post_meta($postid,'theme',true);
    		echo "<select name=\"thm\">";
    		foreach($themes as $theme)
    		{ ?>
    			<option value="<?php echo $theme['Name']; ?>" <?php if($default_theme==$theme['Name']) echo "selected=\"selected\""; ?>> <?php echo $theme['Title']; ?> </option>
    	<?php   }
    		echo "</select>";
    	}
    	function save_theme($postid)
    	{
    		if(isset($_POST['thm']))
    		{
    			$themedata = $_POST['thm'];
    			//if(get_post_meta($postid,'theme', true)=="")
    			//{
    			//	add_post_meta($postid,'theme',$themedata);
    			//}
    		//	else
    		//	{
    			update_post_meta($postid,'theme',$themedata);
    		//	}
    	}
    }
    
    function get_post_template($template='')
    {
    	global $post;
    	$sel_theme = get_post_meta($post->ID, 'theme', true);
    	if(!empty($sel_theme))
    	{
    		$theme=get_theme($sel_theme);
    		$template = stripslashes($theme['Template']);
    		//$template=get_theme_root()."/{$template}/page.php";
    	}
    	return $template;
    }
    
     function get_post_stylesheet($stylesheet='')
     {
     	global $post;
     	$sel_theme = get_post_meta($post->ID, 'theme', true);
     	if(!empty($sel_theme))
     	{
     		$theme=get_theme($sel_theme);
     		$stylesheet = stripslashes($theme['Stylesheet']);
     	}
     	return $stylesheet;
     }
    }
    $theme_select=new ThemeSelect();
    ?>

    Any idea?

    rochsid

    (@rochsid)

    to:webmaster887
    If you aren’t use this plugin, you can styling your template be yourself..
    For example: u’r make a different header and then put this on your single.php with this code:
    <?php include (TEMPLATEPATH . '/different-header.php'); ?>

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Can a different template be appliied to certain pages?’ is closed to new replies.