Let’s see what this baby can DO

WE’VE hit the part of the project where it’s time to move it, move it! It has been a looong time since I worked with any kind of CMS, and the last time it was one being written in-house so everything took for-ev-er. Yeah, it’s not like that with WordPress!

It’s not so much that there are no problems, but that the problems are pretty easy to solve because we haven’t tried to do anything truly esoteric. (And if we plan correctly, nothing we do should be an esoteric, edge case. Or such is my naive hope in these, the salad days.)

In the space of about two weeks give or take a few days we’ve learned enough about underscores (thanks to a lynda tutorial) that with two of us working part time we have enough of a theme to make basic text content look presentable with a header, dynamic breadcrumb trail (woo S!), web fonts, a nod or two to responsive, and a footer populated by widgets. In addition we’ve implemented a responsive mega menu with our full IA populating it. The menu is thanks to a plugin that I now know well enough to think that we can use it for production, though it needs some jQuery work to bring the keyboard accessibility from non-existent to WCAG AA compliant.

Our third dev populated the system with content to match up with the IA so we can do a full prototype test and validate that the IA will allow users to complete tasks such as “Find out whether we get any time off over Memorial day, and then request some vacation time to coincide with that weekend.”

I also did what I think is probably a worst case scenario deploy today to get all of this out to our alpha test environment, which is where the prototype testing will occur. This included:

  1. Update WordPress core
  2. Deploy our original code (the underscores theme)
  3. Deploy two plugins that we didn’t write
  4. Export / import content (pages and menus)
  5. Use direct database operations to move plugin settings from one instance to another

Oh, I am sure there are ways it could be worse, but that covers many big bases. Code, content, dependencies, WP core, settings. I had to lay hands on the WP admin interface a lot more than I would have liked, but by the time I had done it twice I had it down to about a 10 minute process not including the part where Bamboo goes off and does the initial deploy.

It leaves me wishing that there were a standard way to hook into plugins and automate settings… I am sure I am not the first to wish that. What I want is a way that I can drop some code into my test directory and have Bamboo execute it and do some of this manual work for me. Or set up a registration of settings in a PHP array or something, do it once and WP executes it when the plugin is enabled.

Anyway the point of all this is that yes it took some time and yes it was more complex than it seems like it should have been but in reality it took me a day to figure this specific micro-process out, including understanding someone else’s plugin enough to surgically grab just their settings from the database and shove it into another instance’s tables. By the end of the day I had my playpen and three test instances all set up with this deploy and next time, it’ll probably go faster now that I understand more about how posts and options are stored.

oh yeah, multi-site

So we decided that multi-site didn’t actually make sense for us, and I should have just paid attention to Ipstenu in the first place. As I began to set up the mega-menu it came home to us just how needlessly painful it would be to have the content separated out into different sites. So it’s all going into the root site.

I did decide to keep all the instance as multi-site instances because I know, I know that one day someone is going to want us to build a sub-site or a standalone site or something with a truly different look or… something that should really, truly be in its own site. Call it 18 years of experience on this intranet talking or just my worst-case-scenario planning or whatever you want. We’ll need that functionality and it’s already set up so we are keeping it. It will be invisible to our content admins as none of them will ever be Super Admins.

(Wow, that sounds like famous last words…)