How do I add a simple jQuery script to WordPress?
I know what you mean about the tutorials. Here's how I do it:
First you need to write your script. In your theme folder create a folder called something like 'js'. Create a file in that folder for your javascript. E.g. your-script.js. Add your jQuery script to that file (you don't need <script>
tags in a .js file).
Here is an example of how your jQuery script (in wp-content/themes/your-theme/js/your-scrript.js) might look:
jQuery(document).ready(function($) { $('#nav a').last().addClass('last');})
Notice that I use jQuery and not $ at the start of the function.
Ok, now open your theme's functions.php file. You'll want to use the wp_enqueue_script()
function so that you can add your script whilst also telling WordPress that it relies on jQuery. Here's how to do that:
add_action( 'wp_enqueue_scripts', 'add_my_script' );function add_my_script() { wp_enqueue_script( 'your-script', // name your script so that you can attach other scripts and de-register, etc. get_template_directory_uri() . '/js/your-script.js', // this is the location of your script file array('jquery') // this array lists the scripts upon which your script depends );}
Assuming that your theme has wp_head and wp_footer in the right places, this should work. Let me know if you need any more help.
WordPress questions can be asked over at WordPress Answers.
After much searching, I finally found something that works with the latest WordPress. Here are the steps to follow:
- Find your theme's directory, create a folder in the directory for your custom js (custom_js in this example).
- Put your custom jQuery in a .js file in this directory (jquery_test.js in this example).
Make sure your custom jQuery .js looks like this:
(function($) {$(document).ready(function() {$('.your-class').addClass('do-my-bidding');})})(jQuery);
Go to the theme's directory, open up functions.php
Add some code near the top that looks like this:
//this goes in functions.php near the topfunction my_scripts_method() {// register your script location, dependencies and version wp_register_script('custom_script', get_template_directory_uri() . '/custom_js/jquery_test.js', array('jquery'), '1.0' ); // enqueue the script wp_enqueue_script('custom_script'); }add_action('wp_enqueue_scripts', 'my_scripts_method');
- Check out your site to make sure it works!
If you use wordpress child theme for add scripts to your theme, you should change the get_template_directory_uri function to get_stylesheet_directory_uri, for example :
Parent Theme :
add_action( 'wp_enqueue_scripts', 'add_my_script' );function add_my_script() { wp_register_script( 'parent-theme-script', get_template_directory_uri() . '/js/your-script.js', array('jquery') ); wp_enqueue_script('parent-theme-script');}
Child Theme :
add_action( 'wp_enqueue_scripts', 'add_my_script' );function add_my_script() { wp_register_script( 'child-theme-script', get_stylesheet_directory_uri() . '/js/your-script.js', array('jquery') ); wp_enqueue_script('child-theme-script');}
get_template_directory_uri : /your-site/wp-content/themes/parent-theme
get_stylesheet_directory_uri : /your-site/wp-content/themes/child-theme