10 FREE tips to make WordPress more usable

20

Opinion — When a user faces a difficulty, I only know of one suitable option when it comes to usability: It is to make the software take the decision for him ('best default'). And when such a thing is not feasible, I only know of one fallback option: It is to make a button.

I'm aware this may sound silly to many a developer. Typically, they put the 'freedom to decide' or a 'learning curve' forward and miss the fact that they should be the ones who should need to make the extra step to use the tool in 'expert mode'. Open source developers are generally hardly concerned with UI design issues. Even though there may be a lot of money to be made in the field of open source usability.

I've these thoughts because Matt Mullenweg, the lead developer of WordPress, triggered a lengthy thread in the WordPress hackers mailing list:

I'm curious how the list thinks the community could be improved to avoid the concerns voiced in comments like this

I found this amusing, in some ways. WordPress is possibly the most powerful distributed conversation tool there is, and this topic ends up in a mailing list. Sad.

This remark set aside, what have we got when we take a closer look at the critics?

  1. Users don't want to look for plugins or themes
  2. Users are not even remotely interested in changing a simple php tag in their template files
  3. Users wouldn't care much if someone tried to explain how to do this in a forum

In short: Users want a packaged product, with best defaults, and buttons. Incidentally, that is something akin to the CMS theme I am working on. Using it, Caroline could have added a feature such as 'recent comments' to her web site in one click. Not 'add the following tag here' (why not a relevant do_action?) or 'replace this tag by this new one' (why not add_filter?). Just one click in the plugin menu.

There's not much more to usability besides best defaults and buttons. I should probably mention cancel buttons too. Cancel buttons don't have to do anything, but it is basic usability to always provide a cancel buttons — Users are scared to death when none is around. Everything
beyond this is about auto-correcting common mistakes and making things look as usual, because errare humanum est and users spend 99% of their time somewhere else.

Consistent with these ideas, I suspect the following usability basics would be more interesting than trivial and/or meaningless details such as resizing the excerpt box and reorganizing the admin menu:

  1. Deliver a packaged WordPress install with a collection of plugins and pre-built themes that auto-detect said plugins on a if(function_exists('plugin_blah_blah')) basis like the Semiologic theme and CMS — That way, a user can customize his theme in a mere few clicks and start blogging immediately.
  2. Deliver a hosted version of WordPress — Users pay to blog. The button should read 'Buy a hosted WordPress', not 'Download WordPress'. Let the default class of users — the ones who pay for their hosting — buy their hosted version of WordPress as the default means of getting the software. Odds are very strong a host will be willing to sponsor WordPress bandwidth and more in exchange for this strategically placed button.
  3. Add a Preview button — Yes, I'm aware you can mimic this. But add the Preview button — that's how it's called. This, the spell checker and the wysiwyg editor are like the most basic features for a publishing tool. No credible usability expert should miss any of these three points in an audit.
  4. Add a spell checker — Yes, it's bloat. Include the plugin and enable it by default.
  5. Hide all the HTML markup via a wysiwyg editor with a built-in image uploader — A debugged version of HTML Area should be present and enabled by default, and Markdown should be the default text rendering engine (textile is not intuitive enough) when HTML Area is disabled. And a hook should make these plugins mutually exclusive.
  6. Include inline post, comment, category and link editors in the default themes, i.e. a bit like WordPress Touched. Add a readily available new post, new category, and new link buttons, right-click blog components such as 'Just Blog-it' for Firefox for each of the main browsers, as well as a
    decent search feature on the blog. And there's hardly any need to go to the scary looking admin area anymore.
  7. Add an onunload event on editors to trigger a confirmation request when the user leaves without explicitly saving — I can't be the only one who is losing drafts on Ctrl+w…. An autosave feature would of course be better, but it should not be an option unless you feel like programming a multiple undo button and storing the stack of changes since the post's creation.
  8. Replace user levels with user groups — It is more natural and easier to understand. Suggestion: Administrator (may do everything), Editor (may publish and edit posts), Contributer (may submit drafts), Moderator (may edit comments), Registered User (has a login) and Guest (no login).
  9. Use natural language rather than URIs to insert links — No normal user in his right mind I know of spontaneously writes about <a href="http://wordpress.org">wordpress</a>. URIs look like throw-up and taste like throw-up. This is because they are throw-up. I suspect users may spontaneously link to [WordPress->] if it results — as does on this web site — in a link to WordPress. My smart links plugin should be available with the release of WordPress 1.5.1.
  10. Get rid of trackbacks and pingbacks, and use an auto-discovery service instead — I've previously discussed what could be a credible alternative to trackbacks and pingbacks on this blog. Said post sucks, but the points remain.

Obviously, there would be a lot to add. Especially if you enter the realm of more complex UI matters. Like contextual help that changes links to the documentation based on what the user is doing, i.e. the context, in addition to being positioned where appropriate. Or posts that auto-discover related posts based on a graph analysis. But I guess the above straightforward and simple points are a good enough start for WordPress, and require little or no effort.

My $.02.

Update: Revisiting this three years after the post, many of these points have been implemented since.

Filed under Blog, Highlights, WordPress by on #

Comments on 10 FREE tips to make WordPress more usable

April 22nd, 2005

monkeypup @ 3:12 am #

Wow. It's like you took a peek into my brain on this post. I agree completely with all of your thoughts, and I can only hope that someday a lot of these are incorporated in later versions. Wordpress could be a lot more user friendly and therefore more accessible to the public if these were incorporated.

On this topic, a big problem I have with a lot of plugins is the poor readme or poor install directions that come with it. As a user of wordpress who has zero to -1 knowledge of php, I find most plugins over my head. I manage to fumble through them with trial and error, but it took me a while to even figure out what the heck "the loop" was! It would be nice if all of them were written with both the pro and amateur in mind.

jerome @ 7:29 am #

Denis, a lot of good points here about WordPress usability (even if I don't agree with you 100%). The biggest issue is really the lack of easy-to-install, sophisticated themes. If it were easier to get the look & feel that people wanted from the defaults then people would be much happier. Especially if said themes supported popular plugins out of the box.

jerome @ 5:48 pm #

Ah, the magic number makes its appearance!

April 26th, 2005

Prem @ 6:15 pm #

> 8\. Replace user levels with user groups

Some very good points.

Regarding point 8, I have a few ideas and have a started work on what will be a usergroups plugin.

May 3rd, 2005

jackson fox @ 10:45 pm #

I like the direction you're going with these ideas, but I'm afraid that some of them would turn WP into yet another lumbering PHP monstrosity (see PHPNuke). I'm a big fan of the Firefox/Thunderbird mantra of "only what you need and no more" combined with the ability to expand the feature set with plugins. So I hope that things like inline editing, wysiwyg editing, etc are plugins. Maybe there should be a "WordPress+" plugin pack for download on the main site.

Also, wouldn't using Markdown fix #9?

jerome @ 11:19 pm #

Jackson, some interesting points but I'm not sure that your comparisons are really fair.

Firefox/TB are fantastic in terms of useability. The interface is simple and clean versus WordPress which could use a serious facelift on the admin side. Typically when programmers add more features they end up adding more GUI widgets which leads to a cluttered interface. But if you take a step back and add in features that 99.9% of users will want enabled, then you don't need to add an in-your-face widget to activate it — it can be safely buried in an obscure dialog or even in a config file. That same philosophy is used in FF/TB: there are tons of options and tweaks you can do but they aren't available from the GUI.

PHPNuke (which I haven't used first-hand) has a reputation for being extremely configurable but I've never heard praises sung about its usability…

I love Markdown but I think that Denis prefers the syntax of his smart-link plugin… :)

May 4th, 2005

jackson fox @ 1:50 am #

jerome:

I think we're saying the same thing. I like the FF/TB philosophy a lot, and would like to see WP keep the same path. This does not mean it's perfect by any means. As you mentioned, the admin UI is a pain. I'm more concerned about features that will add bloat without improving the user experience. Thinking about more, I can see a wysiwyg editor being a great help to inexperienced users, but I hope every new feature has to fight hard to be included.

Denis:

I'm not sure I see how Firefox fits in the classic engineer/linux geek as-many-buttons-as-we-can mentality. The classic Mozilla suite certainly fits this profile though. I feel that FF is much closer to the BeOS (and now GNOME) model.

I think you misuderstood my WP+ idea. Keep the core WP package lean and mean, and provide a separate file with some helpful plugins. This would be easier if there was a package format for WP plugins that would make distribution easier.

I think the smart link idea is an interesting one, though at first glance some of the syntax looks a little geeky (eg `[projects->./../]`). I really like wiki-style linking and your plugin looks like a better solution than others I've seen. I look forward to trying it out.

jackson fox @ 4:15 pm #

Denis:

I would hate to drag this into an open source usability flame war, so I'll simply say I mostly agree with your framing of the 'geek mentality' and disagree with your comments on GNOME.

I think the plugins you mention with regards to Firefox are good illustrations of my feelings towards WordPress. In my opinion the 'Disable targets for downloads' would be a good addition to the default feature set. It routes around buggy developer behavior to the benefit of the user. I think the ConQuery plugin is another matter. The features allowed by ConQuery are too similar (but not the same I admit) to those supported by the Firefox search box, but are hidden in a non-obvious location. AdBlock is a little ambiguous. With a better configuration interface I could see it being standard, but could also see objections in that it modified page content to an unacceptable degree.

Ok, to bring this back on topic… You and I disagree about which plugins would make good features for Firefox. We also disagree on what plugin features would make good built-in behaviors for WP. I feel like the WP devs should er on the side of simplicity except when the feature presents a significant usability improvement to the vast majority of WP users. This means WP needs to clearly define who its users are and ideally have a process in place for reviewing feature requests.

jackson fox @ 5:02 pm #

> Thus, the only point where our views differ, if anything, is that I think the default package should be WordPress Fat, with WordPress Light as the developers' package; whereas it looks as if you'd rather see WordPress Light as the default package, with WordPress Fat as the user's package. It's a quite typical debate, if I may.

I think you nailed it :)

jerome @ 5:09 pm #

Wow, that has to be the most civil and reasoned debate I've seen on a weblog in a long time! I must have connected to the wrong internet this morning… :)

jerome @ 5:48 pm #

Yes, I read every single one hoping that I wouldn't find something matching me! Thanks for the link.

May 18th, 2005
May 23rd, 2005

Madolyn @ 2:23 pm #

"Replace user levels with user groups"
I very much want something like this, although not exactly like this. My first idea was "I want to be able to group registered users into custom groups and give accesibility to certain posts or certain categories ony to certain groups". My second idea was "I want to be able to edit what each user level can do". At present there is nothing like this (ViewLevel does not do what I want because 98% of my audience should never be allowed to post anything to any of my sites, so I'm not promoting anyone above '1').

As for the styles vs templates vs themes issue, I'm savvy with a lot of stuff but still groping with php. My main gripe with themes is that the css isn't modular, and I have to hunt through a copy of a generated page to find out what something is called (div id or class) so I know what to change. Do all designers forget about the importance of degradability? Because some people still surf with css off. I don't want umpteen div ids that all basically say 'font-size: 11px;', I want to define 'small' as 'font-size: 11px;' and have umpteen instances of 'small' tags throughout the page, wherever needed.

Ok, end rant. :)

May 26th, 2005

Sherman @ 5:01 am #

Hi Denis, Congrats and thanks for a wonderful CMS and theme – U ROCK dude!

Curious, how would I insert a page header colored background image? I would still like the title and description, plus login+ links there, but the background image to appear below those links. Would you recommend the php file and line location to add my image?

Thanks once again, Denis.

Cheers! Sherman