The Case Against WordPress Plugins

WordPress.org Plugins
WordPress.org Plugins
WordPress.org Plugins

As suggested by the comments this is probably better titled as:

Why I Prefer Not to Use Plugins in WordPress

WordPress is a great open source CMS. Out of the box it has a ton of functionality and the huge community that exists around it contributes plugins and patches which are often very high quality.

Despite the typical quality of plugins for WordPress I don’t like using them and here is why.

Clean up Please

One of the biggest issues with plugins is the fact that many just leave their tables in the database after they have been removed. A well thought out plugin that adds data to your DB should also:

  1. Remove the data from your database
  2. Offer to let you download a .zipped copy of the data before deletion

The only plugins I’ve seen clean up after themselves are premium plugins like Gravity Forms. Yes there may be other plugins of a non-commercial nature that do clean up after themselves I just haven’t seen them.

Way more than I need

Many plugins for WordPress provide way more functionality than I need. In an attempt to serve the wide community that is WordPress plugins seem to bloat. Users request more features and the developer adds them to keep their users happy. Sure this sounds like a good plan but so many plugins offer a million different options for what was once a simple function.

Trivial Functionality

While I’ll agree that WordPress is used by many people with differing degrees of comfort in code, I personally am happy to code. There are a ton of plugins that add trivial functionality (Feedburner RSS link) for which I think its silly to use a plugin. Producing a quick theme level option that uses the default WordPress feed or can substitute for any feed you choose is a trivial thing so I just use it in every theme I produce.

Increased Likelihood of Issues

Anytime you add code to anything you’re increasing the likelihood of errors in the system. Each line of code can potentially include a security hole in your software. Code can break on upgrades of the system. With the recent release of WordPress 3.0 many people reported issues during upgrade because of plugins. I personally experience issues with the TSG Podcasting plugin. It gave me a mysterious white screen of death. Yeah it was upgraded pretty quickly but the fact is that WordPress 3 betas were around for a long time and the plugin author waited to update till after issues were out.

I’m not trying to call TSG out, it’s just an example that happened recently. I still use the plugin and don’t plan on switching.

Long Term Support

This issue has raised it’s head before and the WordPress community is trying to deal with it by introducing the notion of Canonical Plugins. There are many cases of plugins just stopping development. With the wide user base of WordPress it’s almost guaranteed that there will be hundreds of people using any given plugin. That’s hundreds of people who aren’t happy when the unsupported plugin breaks. If there is a plugin I’m relying on I’d rather also be in control of its development. At the very least I want to see a commitment to the continued development of the plugin.

There are few plugins that truly have any type of long-term development commitment so I’m just hoping development will continue.

Making the WordPress Plugin Ecosystem more Robust

I’ve alluded to many of these but, here are the items I’d like to see WordPress work on with Plugins:

  1. Uninstall Mechanism

    The WordPress Plugin API should include an easy call which would allow plugins to remove all of the data they’ve introduced into the database as well as offer a .zipped copy of that data. This isn’t something each plugin developer should have to build themselves.

  2. Version Compatibility Checks

    When upgrading WordPress it should check if all of the current plugins are marked as version compatible with the version you’re upgrading to. If not it should give you the opportunity to upgrade or to stop the upgrade. Yes this means plugin authors will have to tag their plugin as compatible with the proper version of WordPress and no it doesn’t really stop them from tagging without testing but it’s better than nothing.

  3. Easily Transfer Ownership of Undeveloped Plugins

    There are also lots of plugins in the repository that are dead in the water. Currently there is no real mechanism to pass on ownership of a plugin. Not only should this be easy for a plugin author to do, it should also be possible to transfer the ownership of a plugin given a stop in development, a compatibility issue, and no response from the original developer. Yes there needs to be some process to make sure that plugins aren’t being removed inappropriately but there needs to be a process to give dead plugins to developers that want to maintain them.

  4. Development Commitment

    There should be some sort of development agreement provided by WordPress that developers can optionally agree to. Something that says this will be in development for the next 6 months or maybe that it will be updated for the next release of WordPress. Developers would need to tag the version appropriately at the release of each WordPress version. Yeah this idea needs more development so leave your thoughts in the comments.

  5. Easily Remove Outdated Plugins

    This idea came to light from discussions on the WordPress Hackers Mailing list. It seems that plugins whose functionality is no longer needed (because it’s in WordPress core) are still sitting on the WordPress Plugin Repository. There is no clear way to remove a plugin from the repository.

I don’t

Now despite my dislike of plugins I don’t disable them or their updates on any sites I produce.

Firstly clients aren’t coders so they may need functionality that is supplied by a plugin. Sure I might code it directly into the themes functions file but clients don’t want to always have to come to me for everything.

Secondly entirely disabling the plugin updates and plugin system is more work than I want to do. Even on a site that I manage regularly sometimes I just need something to work and work quickly. In that case I’ll resort to a plugin until I have time to add the functions myself.

Thirdly WordPress uses its own plugin architecture to modify itself so stripping out the plugin functionality entirely would break a site.

Forth removing plugin function would be like forking WordPress. I’m not working on any sites that are so mission critical that the time I’d spend stripping out plugin functionality and making WordPress still work is worth it in any fashion. For some government organizations this would make sense because of the sensitivity of their data but I’m not working with anything like that.

Episode 1 – Andrea R

The inagural episode of Your Workflow. Today I interview @andrea_r. We talk about her work with WordPress and WordPressMU and the tools she uses to get her job done. We even delve a bit into what her husband @wpmuguru uses, as a core committer to the WordPress project for WordPress 3.0.

Captcha Sucks But I’m Lazy So it’s Your Problem

Horrid Captcha example
Horrid Captcha example
Horrid CAPTCHA example

Hidden under the guise of making your life less troublesome by limiting spam on your site lurks a hurdle. It’s a hurdle that brings no end of frustration to users. A stabbing pain in the eye of users and what does it gain us but a few precious seconds of our days.

The Issue

We’ve all dealt with CAPTCHA’s. You know that squiggly piece of crap that is supposed to test if you are human. Google even recommends using CAPTCHA to help control the spam you get for registrations or comments.

While I understand the need to control the spam bots lurking out in the ether this problem is not the problem of your website users, so why are we forcing it on them to solve? Really some CAPTCHA’s are so twisted that future generations will enshrine them in museums as the torture implements of this net enabled generation.

Really to get people interacting with you online you need to break down barriers and make the hurdles as small as possible. Google’s webmaster central recommends that we build sites for users then recommends you use CAPTCHA’s. Does one hand know what the other is doing?

Captcha’s aren’t built for users they’re built for website owners. They take the problem of spam control and make it the problem of our website visitor. Would you go to a brick and mortar store that had a test to make sure you had cash to buy right now? I mean that’s a challenge and response to make sure you fit their profile right?

The Better Way

So we’ve established that CAPTCHA’s not only suck but they take a problem on our end and make it a user’s problem. “There has to be a better way” we all scream.

There is at least one system I know of that doesn’t push my spam control issue onto my users. It’s used just below for comments and comes bundled with any WordPress installation, Akismet.

Akismet uses some fancy algorithm to figure out what is spam and what isn’t. I don’t have to manage it I just check once a week quickly to see if there are any false positives which has never happened on the blogs I manage regularly.

Another option is a honey pot form element. Push it way off the side of the site. If it’s filled in you have a spammer so you throw out the submission.

Simple logic puzzles are another way to try to drop the bar lower but still get a challenge response from users. You’ll see this on some of my forms that ask “What colour is snow?” Still this is a hurdle and in my mind less desirable than no extra steps from the user. In fact I’m actively looking for a different form plugin for WordPress because of this.

The End

So let’s band together and try to make sure we don’t push pain on our website users. Rather then wasting time trying to kill IE6 let’s throw our effort behind killing the CAPTCHA.

And now for some fun. Let’s stop and look in absolute disbelief at the horrid CAPTCHA’s shown below.

More terrible captcha examples
More terrible CAPTCHA examples

Comienzo a Free WordPress Development Theme

Comienzo theme file

Comienzo theme file
If you follow me on twitter you may have noticed me tweet about adding features to my WordPress development theme. Well today it’s ready for release.

Comienzo (thanks @iKitty for the Spanish help) is a starting theme built for developers or designers. This really isn’t built for non-coding users since it contains almost no styles at all. Comienzo actually started out life as the wonderful Starkers by Elliot Jay Stocks. I used Starkers to start my WordPress development for quite a while but despite its greatness I was still always adding things to it like jQuery. Thus Comienzo was born.

The readme is a bit more detailed but Comienzo includes a bunch of stuff for you like jQuery 1.4.0 in the theme functions file. 2 widgetized areas complete with descriptions (new WP 2.9 feature). One of the widgetized areas is an alert area in the top of every page.

Comienzo only loads the new WordPress thumbnails if it is supported in the current installation. Comienzo auto removes text in the search box, provides client side validation of username and email fields in the comments, provides an admin panel for clients to include website tracking scripts like Google Analytics.

In short it does a bunch of stuff that I was always doing to make WordPress development as efficient as possible and provide my clients with the best theme I could.

The theme is entirely free to use for personal or commercial projects. I’d love a link in a blog post saying how cool I am but it’s not required. So that means go ahead use it for client work and give me no credit. I’d love to see some of the things that get built out of it though so leave a comment and let me know what you did.

Support: I offer no real support on the project. You can see the project on github which does issue tracking on projects so if you have an issue submit it there. Feel free to ping me on twitter to let me know you added an issue (that included a good description and test case and even a code fix) and if I agree I’ll add it at some point. Even better fork it on GitHub and fix the issue yourself then send me a pull request. Make sure there is a good description with it and if I agree I’ll incorporate it into the Theme.

Edit: Since I’ve got the question lots already…no there are not any real styles in the theme. It exists as a foundation for building WordPress sites. It provides a bunch of features for your site development so you don’t have to go add them to each site again like the client side comment validation.

View Theme Demo

Download Comienzo a Free WordPress Development Theme.

5 Blogs for Web Designers to Follow

shot of the nettuts site
shot of the nettuts site
  1. Nettuts
  2. Nettuts is part of the Envato network. Nettuts covers all sorts of web design and development. Everything from WordPress to posts on Coldfusion. Articles are well written and frequent.

  3. A List Apart
  4. Published by Happy Cog A List Apart covers all topics dealing with web design. From usability to introductions to Ruby on Rails. While only published a few times a month each article is packed full of knowledge and is good for reading more than once.

  5. Digging Into WordPress
  6. Although this blog is a newcomer to the scene the authors are not. Follow this blog for lots of neat little tricks to use in your wordpress development.

  7. CSS-Tricks
  8. Another blog by Chris Coyier (Digging Into Worpress is also by Chris) but a bit more generally focussed on CSS. A great all around resource for design and coding tips. Also check out the forum for lots of helpful people.

  9. Wireframes Magazine
  10. If you are looking to learn more about wireframes and information architecture look no further. One of the things I love about this blog is that it shows examples of how other people do their wireframes.

Free cformsII stylesheet

cformsII by delicious days
cformsII by delicious days

I work with wordpress tonnes and most sites I build need a contact form of some sort. My default plugin for forms on wordpress is cformsII. My only real complaint with the plugin is that the stock stylesheet is huge and a bear to work with.

To solve that problem I created my own and decided today to share it with you. Please if you have any suggestions on how to make it better leave them in the comments or hook up with me on twitter @curtismchale.

Download the stylesheet.

Usage Instructions

To use this stylesheet with your cformsII form simply go to the cformsII/styling menu and deactivate the stylesheet. Now use the @import method to include your new stylesheet from the main site stylesheet.

The stylesheet accomodates one main form and the use of the cformsII widget. You will have to change some of the div’s call to suit your site.

You may use this stylesheet with no attribution for any of your projects. If you would like to distribute it please link back to this post.

Have fun styling your forms.

Edit: While cformsII was nice it doesn’t compare to using Gravity Forms. I don’t do forms any other way anymore so go purchase Gravity Forms.

The Daily News: WordPress 2.7 and pricing your projects

How about we start the day with some twitter inspiration. Use the link to check out some creative twitter backgrounds and get some inspiration for designing your own. I know mine could sure use a refresh.

Next up today is some feature previews for WordPress 2.7, which I am really excited about. Overall the interface is cleaned up and the publish features have seen a huge revamp. You can also now mass edit posts or pages which would make any categories you need to change a snap. There is a huge list of things that will make your WordPress install easier to manage so go check the post out.

If you have hung around any design related forums one question you will hear is “What do I charge for …” It comes up over and over again. Freelancer Magazine has a great post on how to price yourself. Whether your just starting out or have been at it for a while have a read and check out how you price projects.

Finally today check out a post on embedding fonts for the web. Most web designers I know would love to have typographic freedom with their designs and it currently looks like this dream future is not so far away. For a good review of the situation as it stands check out the article. Don’t forget to see all of the articles that are linked as sources as well.

The Daily News: Google custom search and getting more clients

How many of us have used the built in search for a site and found it to be horrid? I know that a site I am currently working on has what I feel is an unusable search function. In fact the results are so bad I think it’s better if they aren’t even there. So I’ve been thinking about using a google custom search but really wanted to have an auto complete feature. Well today I woke up to a tutorial fron NETTUTS that details just that, how to add auto complete to Google custom search.

The next two articles look at making your site/online presence better. First is 15 elements of a good site design. Looks at having a good about page to being able to track your site stats. The second article is is the second part in a series of articles about making your portfolio better to get more clients. This article doesn’t focus as much on your online presence as your overall marketing of yourself. Check out the list and start getting more clients in your door.

Today we’ll finish with a very cool wordpress link. I make lots of themes for clients and am starting to make some for sale. I have looked at custom options pages but never actually done one but that will change. I found an article dealing exactly how to build a custom options page for a wordpress themes. You can add a bunch of nice funcationality for people who use your themes.

The Daily News: Productive coding and cool shoes

We’ll start off today with a link for all programmers on how to be more productive. The one that I loved was using something like textexpander (Mac) or texter (Windows) for coding. Remember this is not just for coding. I set it up for my email signature the name of the place I work fulltime… Try it out typing will never be the same.

Second up today is a great list of plugins to add to your WordPress install. Ranging from the pragmatic delay of sending things on your RSS feed to make sure you spelled everything right to the technical that allow you to play with the PHP of your widgets. Look through and you’ll probably find one or two that will suit the needs of your blog.

Designers are always looking for cool design elements. Over at Smashing Magazine there are some cool animal RSS icons available for free right now. Take a peak and put them aside for the project that they fit.

How about we finish off with a fun one. Niki over at the Design O’ Blog asked designers to send in pictures of their shoes cause we all know that designers dress cool. There are some cool shoes in here so if your looking for a new pair head over there and get some ideas to spice up your shoe collection.