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
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.
-
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.– WokCommented Apr 20, 2011 at 17:35
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.
-
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.– WokCommented Apr 20, 2011 at 17:32