Wordpress - Most efficient way to add javascript file to specific post and/or pages?
I think the best balance between efficiency, and using proper wordpress methods for adding javascript would be adding something along these lines to your themes functions.php file. For Example:
functions.php:
function load_scripts() {
global $post;
if( is_page() || is_single() )
{
switch($post->post_name) // post_name is the post slug which is more consistent for matching to here
{
case 'home':
wp_enqueue_script('home', get_template_directory_uri() . '/js/home.js', array('jquery'), '', false);
break;
case 'about-page':
wp_enqueue_script('about', get_template_directory_uri() . '/js/about-page.js', array('jquery'), '', true);
break;
case 'some-post':
wp_enqueue_script('somepost', get_template_directory_uri() . '/js/somepost.js', array('jquery'), '1.6', true);
break;
}
}
}
add_action('wp_enqueue_scripts', 'load_scripts');
This gives you full control over what gets loaded where, a centralized location in your themes functions.php file for editing what gets loaded where: and, this way uses wordpress methods for adding javascript to your posts and pages safely.
What I would do is either place in the footer or header and use php conditionals.
For example:
<?php if (is_page ('your-page')){?>
<script type="text/javascript" src"the file path"></script>
<?php } elseif ( is_page ('another')){?>
<script type="text/javascript" src"the file path"></script>
<?php } else { ?>
<script type="text/javascript" src"the file path"></script>
<?php } ?>
This way your not calling all the scripts all the time on each page load and your only calling the ones you need.
Here is a link to the Wordpress codex http://codex.wordpress.org/Conditional_Tags
And if you have special scripts that might only need to be called on a per post basis use custom fields.