4

Is there a native function to check if a theme a template file. For instance, if a theme is not using the 'home.php' file, then execute some code...

2 Answers 2

11

So I would add to the Answer the following:

function foo_function() {
    $located = locate_template( 'home.php' );
     if ( !empty( $located ) ) {
          // 'home.php' found in Theme, do something
     }
}
add_action('init', 'foo_function');
// remember to change both of the parameters above, first one for where you want the
// action to happen and the second one the name of the function declared

As @Chip Bennett, said it will check both TEMPLATEPATH and STYLESHEETPATH, but I would append the code to a hook instead of just putting it in the functions.php file.

But's up to you.

1
  • I'm gonna definitly use it with a hook. I needed the function, because, i'm working on a options panel for my theme framework, that provide layout choices based on available templates.
    – Wok
    Commented Apr 20, 2011 at 17:35
9

Any reason locate_template() (Codex ref) wouldn't work?

if ( '' != locate_template( 'home.php' ) ) {
     // 'home.php' found in Theme, do something
}

Note that locate_template() will check both TEMPLATEPATH and STYLESHEETPATH, so it works for both a stand-alone Theme and a Child Theme.

1
  • Thanks Chip...much appreciated, i'm gonna give Webord the points, seems he needs it more then you :-P. Your awesome in this corner of Wordpress world. I've learned a lot from all your comments.
    – Wok
    Commented Apr 20, 2011 at 17:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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