12

I have a custom page template where I would like to load some javascript. I suppose I could always include the javascript in the actual file, but that seems ugly. Is there any way to identify if WordPress is loading my custom-page.php file so I can enqueue the script only on that page?

It should work dynamically, so checking page id is not an option.

3 Answers 3

29

You can use is_page_template to check if you template is being used and load your scripts based on that ex:

Add this code to your functions.php:

add_action('wp_enqueue_scripts','Load_Template_Scripts_wpa83855');
function Load_Template_Scripts_wpa83855(){
    if ( is_page_template('custom-page.php') ) {
        wp_enqueue_script('my-script', 'path/to/script.js');
    } 
}
1
  • I am tring to use a javascript from one of my plugins and it says: Failed to load resource: the server responded with a status of 403 (Forbidden) Commented Apr 2, 2017 at 7:50
0

You can use something like this .....

 add_filter( 'template_include', 'wpm_load_script_for_template', 1000 );
        function wpm_load_script_for_template( $template ){
             if(is_page_template('lead_capture_full.php')){

// standard code for adding js

            }
        return $template; }
0

You can add new wp_enqueue_scripts in your template file before get_header() call:

/**
 * Template name: My page
 */

function my_page_scripts(){
    wp_enqueue_script('my_script', get_template_directory_uri() . '/js/my-page-script.js', [], '1.0', true);
}
add_action( 'wp_enqueue_scripts', 'my_page_scripts' );

get_header();

Your Answer

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.