As a plugin developer, how to deal with theme developer loading jquery from google?

Theme developers like to deregister wordpress jquery and load jquery from google instead.

I’ve been told it is for speed and I agree.

Read More

This usually is not a problem for me since I always use jQuery instead of $.

But I do see some plugins try to use $, well, it generates javascript error and also makes my plugin not working. As a result, clients blame on innocent me.

Sometimes my js code depends on the version of wordpress jquery but theme developers tend to load a specific version from google.

Even though the theme is updated, they may not update the jquery version, not to mention an old theme.

What should I do in such situations?

Actually, I’m thinking about, maybe I should use Zepto.js instead and include it in my js code.

p.s. good news, wordpress 3.6 doesn’t allow deregister jquery in its backend.

Related posts

2 comments

  1. Any Theme developer that dequeues core-bundled jQuery in order to enqueue some other version – any other version, bundled, CDN, etc. – is _doing_it_wrong(), period. Core, active Theme, and active Plugins all rely on a known version of jQuery being available.

    What to do about it?

    1. Tell the Theme developer that he’s _doing_it_wrong(), and ask for a fix.
    2. Tell your Plugin users to use a Theme hosted in the official WordPress Theme directory, since every Theme hosted there is prohibited from dequeueing core-bundled jQuery
    3. Instruct your Plugin users how to override the Theme’s jQuery override, via a site functionality Plugin that dequeues the Theme’s custom jQuery, and re-enqueues core-bundled jQuery
    4. Instruct your Plugin users how to patch the Theme’s incorrect jQuery implementation, by adding no-conflict wrappers
  2. I know this is a bit old, but seems to come up a lot.

    I am sorry to say mate, but you and the wordpress team are the ones who are _doing_it_wrong() (I’m only talking about the front-end part of things, not the admin panel)

    First of all, it is not safe to always use the latest jQuery cause things can change and people don’t always (read: very rarely) update their code when a new version comes out.

    Second – whether you use $ or jQuery shouldn’t matter. Just stop using global variables altogether and write your js code inside a closure. Don’t view $ as a bad practice because wordpress team says so, they are not the best source when it comes to good practices anyways.

    And finally loading js should be done in the end of the DOM, not in the <head> section (another bad practice from wp team)

Comments are closed.