WordPress Development: Lessons Learned & Downsides

After 8 months, I have finally finished with WordPress development. I definitely learnt a lot, especially in terms of how the back end works and some more PHP.

Lessons Learned

The most important one:

know more PHP than I did.

Admittedly, I knew very little. While I have some experience programming, I only took a 2 day course in PHP. Not having to look up every little thing would have saved me invaluable time.

The other big one was definitely:

know more WordPress.

The documentation is obviously written for programmers (in most cases, those familiar with WordPress). So once again, I spent a lot of time looking things up. In this case, it was even more difficult because I usually had to rely on a couple of different tutorials and piece things together, making things work through trial and error.

Of course, I didn’t have much choice. And if there is one really good way to learn something is to be thrown into it, and make it happen.

Plugins

WordPress could really use some improvements though. One area is definitely in the plugins area. There is little to no cooperation between plugin authors, so there may be anywhere from zero to fifty plugins that do similar things, but all work differently and are of varying quality.

One of the reasons I’ve been posting a lot of plugins review is not only for my own records, but in the hopes that it’ll save other people time from looking through the mass amount of plugins. Unfortunately, because plugins come and go like the wind, plugin reviews become out of date very quickly.

Search

The one other thing I wish WordPress would improve is their search. While the site search uses Google, the plugin search is pretty bad and so is the internal built-in WordPress search. For the plugin search, you cannot refine your search in any way, and the sorting doesn’t seem to work properly.

The built-in WordPress site search (and dashboard pages/posts search) is also pretty bad. It’s organized by date and there is a plugin that allows you to sort by title, but it does full text searching and does no relevance ranking whatsoever. If it even did the minimum of “do these words match words in the title, if yes, put those higher” then that alone would be a huge improvement.

Conclusion

While I think WordPress is a great platform (and it’s open source!), there is definitely room for improvement and may not be the right platform for everyone. In comparison, for example, I get the impression that Drupal has a more cooperative and supportive community with better plugin support and development. On the other hand, I find WordPress easier to teach users.

If I had to do it again, I would definitely have taken the time to learn more about the overall WordPress framework and how different parts fit into the puzzle before diving into making the theme.

WordPress Plugin: Publicize or Automatically Post to Facebook & Twitter

So, I recently discovered the WordPress Jetpack plugin set, which does a lot of the things I had previous looked for WordPress plugins to do, including custom css, share buttons, and extra widgets you’ll find on the .com version. The only thing I really wanted that was missing, was the “Publicize” feature to post to social media, such as Twitter.

Requirement

The one requirement I had was that one plugin should be able to post to multiple social networks instead of having separate ones for each social network. This mostly has to do with making it easier to use and maintain. While we only need Facebook and Twitter right now, we may need others in the future, especially something like G+, so I preferred to already have something installed instead of having to find yet another plugin later.

Results

  • Network Publisher: This plugin probably supports the most social media sites and even includes stats. I didn’t actually really test this one because it required signing up for an API key. From the plugin page, it seems to at least work though.
  • SocialPublish: This one also required creating an account, but I still don’t understand why this is necessary.
  • NextScripts Social Network Auto Poster & WP-AutoSharePost: These required setting up apps on each of the sites, which is fine but not what I was looking for.
  • Social by MailChimp: This only does Twitter and Facebook, which was my minimum requirement, but it works. Not the nicest interface ever, but I like that you can edit the messages individually before they’re posted. I disabled the comment display, so I’m not sure how well that works, but it’s not something we wanted.

So in the end, Social was the only that did what I wanted easily (i.e. without all the dev apps stuff) and without the requirement of creating an account elsewhere first. Still need to properly test it on a multisite setup, but it’s the closest thing I can find to WordPress’ Publicize.

UPDATE: WordPress JetPack now includes Publicize! Yay~

Register for Access Conference

I’m away this week, but felt the need to quickly post about the Access Conference. Last year, I requested the organizing committee to do something for students. In the end, they did two things: add student pricing, and allow volunteers to attend the number of hours they volunteer.

I’m happy to report that this year’s Access also has student pricing with no increase in price!

Register while there’s still space!

code4lib Cool Tool Day

So inspired by the ASIS&T Cool Tool Day, I thought it’d be neat to do one of these since there weren’t many volunteers to do lightning talks/presentations at the code4lib Toronto meetup this time around. Our attendance was a little… paltry, but we had some great presentations! Here are my notes from the session.

Presented by @waharnum

soapUI

  • working with REST based web services
  • testing automation tool for web services
  • best for building with other API
  • autogenerate stubs using WSDL
  • interface between internal systems
  • good for documenting web services, code style with examples
  • normally, mostly used for unit testing

Trello

  • virtual card based whiteboard
  • flexible for planning based
  • collaborative
  • great usability/UI
  • even has mobile apps

Mustache Templates

  • maintaining HTML email templates
  • also works as a crazy text editor for nerds

XSL Transforms plugin in Firefox

  • local reporting
  • anything XSLT with just a few security restrictions
  • e.g. SVN reporting

Presented by @adr

ShowOff

  • cross platform presentation
  • push from laptop to another computer

Sidenote: Other Presentation Tools

Presented by @ruebot

VIM Plugins

  • pathogen – linking for VIM plugins to automatically load VIM plugins
  • nerdtree – pull files quickly by displaying directory/tree

Presented by Pomax

Thimble HTML/CSS Live Web editor

  • teach anyone (kids, adults) HTML and CSS
  • use existing projects to make it fun!

FlickrFindr

  • easy inline flickr search of CC images
  • attribution in alt text

Presented by me

F.lux

  • monitor hue changer, supposedly to help people sleep better by telling your body what time of day it is

That’s it! Hope to do another one of these or lightning talks next time.

Book Review & Notes: Don’t Make Me Think (Steve Krug)

I recently asked for some recommended resources and books to read on usability and UX (user experience). One that came highly recommended was Steve Krug‘s Don’t Make Me Think: A Common Sense Approach to Web Usability.

I really appreciate a number of things, many of which are in other reviews and even in his introduction. Nevertheless, for the benefit of my readers, here’s what I like.

  • It’s short.
  • It’s easy to understand.
  • It’s concise and boils it down to a few simple guidelines.
  • There’s humour in it.

I will say that while most of the ideas and concepts still hold, there are some ideas presented that I think may be a little outdated. It could be that as someone who works with websites on a daily basis that some things seem obvious to me, but may not be “common” knowledge to others. Still, I think it’s easy enough to skip some sections if you feel you already know about it (as I did), and while some parts could be updated, the guidelines and concepts still hold true.

My Notes

I decided to take some notes for myself since I borrowed the book. If these notes pique your interest in any way, I suggest reading the book, because my notes are just that, notes, and in no way do the book justice.

Rule 1: Don’t Make Me Think

This translates to Eliminating Question Marks.
For example, When searching: What is a keyword? If you say it searches all or everything, then that’s what it should do.

Users should know without thinking:

  • Location within the site
  • What’s important
  • Where things are
  • Where to go
  • Why labelled that way

You can’t make everything self-evident, but you can make it self-explanatory.

People Scan and Click the First Reasonable Option

I don’t think this a surprise to people anymore, but it still holds true. The suggestion is to cut your text in half and then half again. Omit any unnecessary words.

Happy talk must die.

Cut down instructions as much as possible; make it self-explanatory instead.

The benefits:

  • Reduces noise
  • Useful content more prominent
  • Shorter pages

Design Pages for Scanning

  • create a visual hierarchy
  • take advantage of conventions
  • break pages into clearly defined areas
  • make the clickable obvious
  • minimize noise

People Like Mindless Choices

User should have confidence that they are on the right track. There’s still a limit to the number of clicks a used is willing to go through, but no hard number if they are mindless and not repetitive. Good example is buying for home office and needing to choose home or office.

Navigation

Should be persistent and consistent with the possible exception of the home and forms.

Links should match the page title. This may seem very obvious, but I see this discrepancy quite often.

On any page, you should be able to identify these basic elements:

  • Site
  • Page name
  • Major sections of the site
  • Local nav
  • Location within the site
  • How to search

Home Page

Should be able to answer these questions at a glance:

  • What site is this?
  • What do they have?
  • What can I do here?
  • Why should I be here and not somewhere else?
  • Where do I start?

Test Early and Test Often

Not the same as focus groups, which are good for determining the audience, if ideas and wording make sense, and their feelings.

[Usability tests are] for learning whether your site works and how to improve it.

Ideally, one morning a month for testing and then debrief over lunch.

Keep and Refill Users’ Goodwill

Goodwill goes down when:

  • information is hidden
  • things are inflexible e.g. form fields
  • unnecessary information is requested
  • looks unprofessional

Goodwill goes up when you:

  • make things obvious
  • save steps
  • make it easy to recover from errors