I see this mistake all the time: developers adding CSS to their WordPress themes by pasting <link> tags directly into the header.php file. While this technically works, it’s the wrong way to do it in WordPress and can cause all sorts of problems.
Why The Old Way Causes Problems
When you hardcode stylesheets like this:
<!-- DON'T DO THIS! --> <link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/style.css">
You’re risking:
• Conflict chaos: If multiple plugins and your theme all try to load styles, you can’t control the order
• Duplicate loading: The same file might get loaded twice
• Broken dependencies: Your theme might load before a plugin it depends on
The WordPress Way: wp_enqueue_style()
WordPress has a built-in system for managing CSS and JavaScript called the enqueue system. It’s like a traffic controller for your site’s assets.
Here’s the right way to load your theme’s main stylesheet. Add this to your theme’s functions.php file:
<?php
function my_theme_styles() {
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'my_theme_styles' );
?>
Let me break this down:
• wp_enqueue_style() is the function that tells WordPress “hey, I want to load a stylesheet”
• 'my-theme-style' is a unique handle (name) for your stylesheet
• get_stylesheet_uri() automatically gets the URL of your theme’s main style.css file
• We hook our function to wp_enqueue_scripts (yes, it says “scripts” but it handles styles too!)
Want to Load Multiple Stylesheets?
No problem! The enqueue system makes it easy:
<?php
function my_theme_styles() {
// Main theme style
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
// Custom CSS file
wp_enqueue_style( 'my-custom-style',
get_template_directory_uri() . '/css/custom.css',
array( 'my-theme-style' ) // This depends on main style
);
}
add_action( 'wp_enqueue_scripts', 'my_theme_styles' );
?>
Your Turn to Fix It!
Take two minutes to find where you’re loading CSS in your theme and replace it with the wp_enqueue_style() method. Your future self (and anyone else who works on your code) will thank you for keeping things clean and conflict-free!
This is one of those small changes that separates amateur theme development from professional, sustainable code.


