How to prevent wordpress from loading old versions of jquery in wp_head();?

I noticed my twenty twelve theme is including outdated versions of jquery and js so I want to replace the scripts with the newer versions, however the scripts are in the file included by wp_head() (which I think is in wp-includes) so adding the scripts to my header means jquery will be loaded twice, I see now way to remove the scripts from wp_head() without messing with wp-include and any changes I do will probably be lost if I update wordpress.

So how can I remove the scripts from wp_head() permanently?

Related posts

2 comments

  1. add_action('wp_enqueue_scripts', 'no_more_jquery');
    function no_more_jquery(){
        wp_deregister_script('jquery');
    }
    

    That will deregister jquery. But why wouldn’t you want jQuery at all?

    If you mean to simply use your own, you should do it in that function, like this:

    add_action('wp_enqueue_scripts', 'no_more_jquery');
    function no_more_jquery(){
        wp_deregister_script('jquery');
        wp_register_script('jquery', "http" . 
        ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . 
        "://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js", false, null);
        wp_enqueue_script('jquery');
    }
    

    This example loads Google’s jquery, but you could easily load one that you have in your own theme folder. You can read more about this process here: Function Reference/wp enqueue script « WordPress Codex

    P.S. That would go in functions. And it is not a great idea to just stuff jquery library calls in your header, as it conflicts with plugins or other things that might be looking for jQuery to be present.

Comments are closed.