You need to have the script in a separate file (normally it would be filename.js; I suppose filename.php would work?).
Then, you need to register and enqueue that script file, using wp_register_script()
and wp_enqueue_script()
e.g.:
function mytheme_register_custom_scripts() {
if ( ! is_admin() ) {
$scriptsrc = get_stylesheet_directory_uri() . '/scripts/filename.js';
wp_register_script( 'mytheme_slider', $scriptsrc );
}
}
add_action( 'after_setup_theme', 'mytheme_register_custom_scripts' );
function mytheme_enqueue_custom_scripts() {
if ( is_home() ) {
wp_enqueue_script( 'mytheme_slider' );
}
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_custom_scripts' );
Note that registering the script should happen at after_setup_theme
, but is_home()
will not be available at this point I don’t think, which is why you need to separate the enqueueing function so that it hooks into wp_head
, by which time is_home()
is available.