Putting it all together: Edit the theme or create a custom plugin?

We've learned in this chapter how easy it is to edit a theme, create a WordPress plugin, and a jQuery plugin. For the majority of your WordPress development work, adding jQuery enhancements right to the theme will do the trick. If you feel your jQuery scripts are a bit cumbersome and you're allowed to edit the theme (assuming of course, you don't break the layout or dramatically alter the look) you'll probably find that being able to wrap WordPress content in custom HTML tags with special class or id attributes is a huge help and time saver.

This chapter's project example's "hypothetical client request" also showed that if there's any chance that your work can or will be reused or deployed across multiple individual WordPress installations, you should consider encapsulating the work in either a jQuery plugin, a WordPress plugin, or as we discovered, both.

In addition to considering if your work will need to be reused or deployed, you may also want to consider the lifespan of the jQuery enhancement and that of the WordPress theme. It's easy to think that the jQuery enhancement is really more a part of the theme as it visually affects it, but is it really? I've found that more often than not, a large part of my WordPress and jQuery development seems to center around encapsulating jQuery development into a WordPress plugin, or making WordPress plugins more effective with jQuery.

As there are only two ways to include jQuery into a WordPress site, through the theme, or a plugin, if you're at all comfortable with editing and creating plugins, you'll probably start to find that its the better way to go (sure, there are always exceptions). Enhancing WordPress plugins with jQuery and even encapsulating jQuery plugins in WordPress plugins will allow you to easily scale your theme design and any jQuery functionality/enhancements independently of each other.

This approach comes in very handy if you do like to redesign or update your theme a lot, or perhaps you have a client who's a little "theme swap happy". If you want to keep the cool jQuery enhanced forms, image and gallery lightboxing, and various other functionality, or even just "neat eye candy" that you've created for a site, without having to manually update a new theme constantly with all of that over and over again, creating a plugin is the way to go, be it for jQuery, WordPress, or both.

Ultimately, it's up to you and your comfort level, and what's best for the project, but I've found, with a few exceptions, which we will cover examples of in later chapters, that trying to keep most jQuery enhancements from being embedded in the WordPress theme has served me well.