Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

How can I get all enqueued styles or scripts and then deregister them all at once?

share|improve this question

2 Answers 2

up vote 12 down vote accepted

I hope you know what you are doing. You can wp_print_styles and wp_print_scripts action hooks and then get the global $wp_styles and $wp_scripts object variables in their respective hooks.

The "registered" attribute lists registered scripts and the "queue" attribute lists queue scripts on both of the above objects.

An example code to empty the scripts and style queue.

function pm_remove_all_scripts() {
    global $wp_scripts;
    $wp_scripts->queue = array();
}
add_action('wp_print_scripts', 'pm_remove_all_scripts', 100);
function pm_remove_all_styles() {
    global $wp_styles;
    $wp_styles->queue = array();
}
add_action('wp_print_styles', 'pm_remove_all_styles', 100);
share|improve this answer
    
Lol, i'm learning what i'm doing... hehe. But thanks, that's exactly what I needed. I'm trying to minify all scripts, attach them together in one file, and enqueue only the new file. :D –  trusktr May 13 '11 at 19:42
    
I know there's plugins for this already, but they always end up breaking my site someway or another, so doing it manually is an option. :D –  trusktr May 13 '11 at 19:43
    
So why tell it to accept 100 arguments exactly? –  trusktr May 13 '11 at 19:46
    
That 100 is actually priority so that the hooked functions are called after all the functions hooked to wp_print_styles or wp_print_scripts are called. –  Hameedullah Khan May 13 '11 at 20:18
    
Oh, gotcha! To give plugins, etc, a chance to register all their scripts. –  trusktr May 13 '11 at 22:28

You can also do it on a per basis by finding the handlers being called upon, search for wp_enqueue_style or wp_enqueue_script you can deregister them like this on your functions.php

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
    wp_deregister_style( 'some-css' );
}


add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );

function my_deregister_javascript() {
    wp_deregister_script( 'tutorials-js' );
    wp_deregister_script( 'gsc_dialog' );
    wp_deregister_script( 'gsc_jquery' );
}

Hameedullah solution is better, however if you run into problems due to some scripts not loading give the above a shot.

share|improve this answer
    
Thanks! Very informative. –  trusktr Sep 9 '11 at 1:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.