How to remove CSS file in the header using WordPress functions?

The question:

I want to remove a CSS from loading in the header, this is the code that appears:

<link rel='stylesheet' id='my-css'  href='http://test.tld/wp-content/themes/mytheme/my.css?ver=3.5' type='text/css' media='all' />

I tried using these functions but it didn’t work:


Is there other ways that the above CSS line can be removed without manually editing it in the template?


The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

If your stylesheet is registered and enqueued correctly then…

function dequeue_my_css() {
// add a priority if you need it
// add_action('wp_enqueue_scripts','dequeue_my_css',100);

… should remove it. That only works if the stylesheet was registered and/or enqueued with wp_register_style and wp_enqueue_style.

If it is not registered correctly then you will have to figure out what your theme did and undo that. It may require editing the template, depending on how the theme is written.

Method 2

Deregister/Dequeue styles is best practice

But you can use this filter too, to filter out styles with any condition:

add_filter( 'style_loader_src', function($href){
if(strpos($href, "name-of-allowed.css") !== false) {
return $href;
return false;

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment