WordPress Apply parent page template to subpage

Following code will be useful if you want to apply parent page template to all the subpages without selecting page template from the options.

You have to add following code inside the function.php you can find this file inside your themes folder.

function change_page_template(){
	global $post;
	$current_page_template = get_post_meta($post->ID,'_wp_page_template',true);
	$parent_page_template = get_post_meta($post->post_parent,'_wp_page_template',true);
	$parents = ($post->post_parent==$post->ID) ? true : false;
	if($parents){update_post_meta($post->ID,'_wp_page_template',$parent_page_template,$current_page_template);}
}
add_action('save_post','switch_page_template');

So after adding these lines parent page template will be added automatically to all the subpages.

Leave a Reply

Your email address will not be published. Required fields are marked *

4 Comments

  1. im getting an error on this line

    $parents = ($post->post_parent==$post->ID) ? return true : return false;

    can you advise what the fix is

    1. Yep.. don’t know why the function name I called “update_post_meta” is changed to “fun”.. code is working now. Post is updated. Copy code again from the post

  2. im still getting an error on the line before, think it has something to do with

    ? return true : return false;

    though php isnt my strong point

  3. Mario Delgado says:

    My approach:


    is_page)
    {
    $current_page_template = get_post_meta($wp_query->post->ID,'_wp_page_template',true);
    $parent_page_template = get_post_meta($wp_query->post->post_parent,'_wp_page_template',true);

    if ($parent_page_template != '')
    {
    $template = $template = TEMPLATEPATH . "/" . $parent_page_template;

    load_template($template);
    exit();
    }
    }
    }
    add_action('template_redirect','my_redirect_template');
    ?>