Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

This seems like a very simple question. I'm looking for something like sub-page.php or page-child.php where I can do some different things on the child pages of my theme.

They are different enough in design and content that I'm having to use a lot of php or the CSS .page-child class to do all the dirty work. I'm looking for a simpler method.

One caveat - I would like this to happen automatically so I don't have to tell the client "make sure to always select the 'subpage' template when you create a subpage!" which is precarious..

share|improve this question
add comment

1 Answer

up vote 4 down vote accepted

There is no specifica template for child pages, but you can do this pretty easily with the get_template_part() function.

First create a file called "content-child.php".

Second create a file called "content.php".

Next, inside of page.php, place this:

if( $post->post_parent !== 0 ) {
    get_template_part('content', 'child');
} else {
    get_template_part('content');
}

Anything that you want displayed on a child page will be placed inside of content-child.php. Anything you want displayed on non-child pages will be placed in content.php.

share|improve this answer
    
I was able to make this code work. As it turned out - I didn't need to separate it quite as much as I thought, so I just adjusted your code and used it in page.php in a couple specific instances. The CSS selector 'page-child' helped round out the edges. Thanks! –  timshutes Jun 15 '12 at 5:29
    
Nice! Great solution. How to set a different template for Parent > Child > Child? Thanks! –  Brightweb Jul 25 '12 at 21:23
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.