Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Enqueuing Styles and Scripts in WordPress
📖 Scenario: You are building a WordPress theme. To make your theme look good and work well, you need to add CSS styles and JavaScript scripts properly.WordPress has a special way to add these files called enqueueing. This helps avoid conflicts and loads files in the right order.
🎯 Goal: Learn how to enqueue a CSS style and a JavaScript script in your WordPress theme using the correct WordPress functions.
📋 What You'll Learn
Create a function to enqueue styles and scripts
Use wp_enqueue_style to add a CSS file
Use wp_enqueue_script to add a JavaScript file
Hook the function to wp_enqueue_scripts action
💡 Why This Matters
🌍 Real World
Properly adding CSS and JavaScript files is essential for WordPress themes and plugins to work well and avoid conflicts.
💼 Career
WordPress developers must know how to enqueue assets correctly to build professional, maintainable themes and plugins.
Progress0 / 4 steps
1
Create the enqueue function
Create a function called mytheme_enqueue_assets that will hold the code to add styles and scripts.
Wordpress
Hint
Use the function keyword followed by the function name mytheme_enqueue_assets and parentheses.
2
Enqueue the main stylesheet
Inside the mytheme_enqueue_assets function, use wp_enqueue_style to add a CSS file named style.css located in your theme folder. Use the handle mytheme-style.
Wordpress
Hint
Use get_stylesheet_uri() to get the URL of style.css in your theme.
3
Enqueue a JavaScript file
Still inside the mytheme_enqueue_assets function, use wp_enqueue_script to add a JavaScript file named script.js located in the js folder of your theme. Use the handle mytheme-script. Make sure to load the script in the footer by setting the last parameter to true.
Wordpress
Hint
Use get_template_directory_uri() to get the theme folder URL and add /js/script.js to it.
Set dependencies to an empty array array(), version to false, and load in footer true.
4
Hook the function to enqueue scripts and styles
Add an action hook to call mytheme_enqueue_assets on the wp_enqueue_scripts action.
Wordpress
Hint
Use add_action with the first argument 'wp_enqueue_scripts' and the second argument 'mytheme_enqueue_assets'.
Practice
(1/5)
1. What is the main purpose of using wp_enqueue_style and wp_enqueue_script in WordPress?
easy
A. To remove styles and scripts from WordPress pages
B. To directly print CSS and JavaScript code inside HTML files
C. To safely add CSS and JavaScript files to a WordPress theme or plugin
D. To create new CSS and JavaScript files automatically
Solution
Step 1: Understand the function purpose
wp_enqueue_style and wp_enqueue_script are designed to add CSS and JS files safely to WordPress pages.
Step 2: Compare options
Options B, C, and D describe incorrect uses: printing code directly, removing files, or creating files automatically, which these functions do not do.
Final Answer:
To safely add CSS and JavaScript files to a WordPress theme or plugin -> Option C
Quick Check:
Enqueuing = Safe adding of styles/scripts [OK]
Hint: Enqueue means safely add files, not print or remove [OK]
Common Mistakes:
Thinking enqueue prints code directly
Confusing enqueue with file creation
Using enqueue to remove scripts
2. Which of the following is the correct way to enqueue a CSS file named style.css located in your theme folder?
easy
A. wp_enqueue_script('my-style', get_stylesheet_directory() . '/style.css');
B. wp_enqueue_style('my-style', get_template_directory_uri() . '/style.css');
C. enqueue_style('my-style', '/style.css');
D. wp_add_style('my-style', get_template_directory_uri() . '/style.css');
Solution
Step 1: Identify correct function and parameters
The correct function to enqueue CSS is wp_enqueue_style. The URL should be built with get_template_directory_uri() plus the file path.
Step 2: Check each option
wp_enqueue_style('my-style', get_template_directory_uri() . '/style.css'); uses the correct function and URL. enqueue_style('my-style', '/style.css'); uses a wrong function name. wp_enqueue_script('my-style', get_stylesheet_directory() . '/style.css'); uses wp_enqueue_script which is for JS, not CSS. wp_add_style('my-style', get_template_directory_uri() . '/style.css'); uses a non-existent function wp_add_style.
Final Answer:
wp_enqueue_style('my-style', get_template_directory_uri() . '/style.css'); -> Option B
Quick Check:
Correct function and URL = wp_enqueue_style('my-style', get_template_directory_uri() . '/style.css'); [OK]
Hint: Use wp_enqueue_style with get_template_directory_uri() for theme CSS [OK]
Common Mistakes:
Using wp_enqueue_script for CSS files
Wrong function names like enqueue_style
Using get_stylesheet_directory() without URI
3. What will happen if you run this code in your theme's functions.php?
A. The custom.js script will be loaded in the footer after jQuery
B. The custom.js script will load in the header before jQuery
C. The script will not load because of a missing hook
D. The script will load but without jQuery dependency
Solution
Step 1: Analyze the enqueue parameters
The function enqueues 'custom-js' with dependency on 'jquery', version '1.0', and last parameter true means load in footer.
Step 2: Understand the hook and dependencies
The function is hooked to 'wp_enqueue_scripts', so it runs properly. jQuery will load before custom.js because of the dependency.
Final Answer:
The custom.js script will be loaded in the footer after jQuery -> Option A
Quick Check:
Dependency + footer true = load after jQuery in footer [OK]
Hint: Footer loading = last parameter true; dependencies load first [OK]
Common Mistakes:
Confusing footer true with header loading
Forgetting to hook function to wp_enqueue_scripts
Ignoring script dependencies
4. Identify the error in this code snippet that tries to enqueue a JavaScript file:
function add_my_script() {
wp_enqueue_script('my-script', get_template_directory() . '/js/script.js');
}
add_action('wp_enqueue_scripts', 'add_my_script');
medium
A. Using wrong function name add_action instead of add_script
B. Missing the version parameter in wp_enqueue_script
C. Not hooking to wp_head action
D. Using get_template_directory() instead of get_template_directory_uri() for URL
Solution
Step 1: Check the URL function used
get_template_directory() returns a server path, not a URL. For enqueuing scripts, a URL is needed, so get_template_directory_uri() should be used.
Step 2: Verify other parts
The version parameter is optional, so missing it is not an error. Hooking to wp_enqueue_scripts is correct. add_action is the right function to hook.
Final Answer:
Using get_template_directory() instead of get_template_directory_uri() for URL -> Option D
Quick Check:
Use URI function for URLs, not directory path [OK]
Hint: Use get_template_directory_uri() for URLs, not get_template_directory() [OK]
Common Mistakes:
Using server path instead of URL for script source
Confusing hooks like wp_head vs wp_enqueue_scripts
Thinking version parameter is mandatory
5. You want to enqueue two CSS files: main.css and theme.css. theme.css depends on main.css. Which code correctly enqueues both with dependency and versioning?
D. wp_enqueue_style('main-style', get_template_directory_uri() . '/main.css');
wp_enqueue_style('theme-style', get_template_directory_uri() . '/theme.css');
Solution
Step 1: Understand dependency order
theme.css depends on main.css, so theme-style must list main-style as a dependency.
Step 2: Check versioning and parameters
wp_enqueue_style('main-style', get_template_directory_uri() . '/main.css', array(), '1.0');
wp_enqueue_style('theme-style', get_template_directory_uri() . '/theme.css', array('main-style'), '1.1'); correctly enqueues main-style first with no dependencies, then theme-style with main-style as dependency and proper versions. Other options reverse dependencies or omit them.