How to enqueue css, js script in wordpress properly

Probably you added your js, css scripts directly in the header but there is a smart way to do this in WordPress. This method is called enqueueing. In this article, I will show how to enqueue css, js script in WordPress properly.

How enqueueing works

There are two simple steps taken while doing it. First, register and then enqueue it.

Enqueue in a plugin

Let’s assume we are enqueueing a js and a css file in a plugin. Here is an example code


function adding_scripts_fn() {

wp_register_script('custom_script', plugins_url('my_script.js', __FILE__), array('jquery'), time(), true);
wp_register_style( 'custom-style', plugins_url( 'style.css' , __FILE__ ), array(), time() );
 
wp_enqueue_script('custom_script');
wp_enqueue_style('custom_style');
}

add_action( 'wp_enqueue_scripts', 'adding_scripts_fn' );  

With wp_register_script this function we have registered the my_script.js file to WordPress. Note that I added time() function for the version of the file, so every time we update the code, it does not cache. The cached file shows the old version of the code, so we don’t see the updates instantly when we make a change. Using wp_register_style we registered our css file style.css

Later, using wp_enqueue_script function we enqueued our js file. Before adding this function WordPress can recognize that there is a script named my_script.js but it does not show in the header or footer and wp_enqueue_style adds our css file

Finally, we added our js and css files with an action hook in line number 10.

Enqueue in current theme

Everything is the same but the value of the source parameter should be changed. Here is an example


function adding_scripts_fn() {

wp_register_script('custom_script', get_template_directory_uri().'/js/my_script.js', array('jquery'), time(), true);
wp_register_style( 'custom-style', get_stylesheet_directory_uri(). '/css/style.css', array(), time() );
 
wp_enqueue_script('custom_script');
wp_enqueue_style('custom_style');
}

add_action( 'wp_enqueue_scripts', 'adding_scripts_fn' );  

Use of shortcode to enqueue scripts

The idea is the same but slightly different way. We will register scripts/styles in a function using wp_register_script or wp_register_style. Rather than enqueueing it in the same function, we will do it in our shortcode so that when we call the shortcode, the scripts will be only on that page/post or wherever we want.


function adding_scripts_fn() {

wp_register_script('custom_script', plugins_url('my_script.js', __FILE__), array('jquery'), time(), true);
wp_register_style( 'custom-style', plugins_url( 'style.css' , __FILE__ ), array(), time() );
 
}

add_action( 'wp_enqueue_scripts', 'adding_scripts_fn' );  

function my_shortcode_fn( $atts ){
   wp_enqueue_script('custom_script');
   wp_enqueue_style('custom_style');

   // other code here
}

add_shortcode( 'my_shortcode', 'my_shortcode_fn' );

I believe you understand how enqueueing works in WordPress and I also hope you can use it in your projects without any confusion.

Leave a Comment

Your email address will not be published. Required fields are marked *