Introducing Dictator

Dictator comparison mechanism

Dictator controls the State of WordPress, and is now available for you to use.

Strongly influenced by Salt provisioning and installable as a WP-CLI package, Dictator now allows you to:

  • Export WordPress’ configuration to a human-readable YAML state file.
  • Commit the state file to version control to share between environments, or with another developer.
  • Compare the state of WordPress to the declared state file, with a colorized diff.
  • Impose a state file onto WordPress.

Dictator understands WordPress in terms of states. States are collections of regions. Each state file has the state declaration along with tracked configuration details for each region. Regions have a defined schema which produces the translation between the human-readable YAML file and how WordPress stores state in the database.

One key idea Dictator adopted from provisioning systems: environments are ephemeral. WordPress no longer doing what you want it to? You should be able to destroy it and provision a brand new version.

For 0.1, Dictator packages two states: network and site. The network state comprises regions for network settings, users, and sites. The site state comprises regions for site settings, users, and terms. Management of widgets, roles, and more is just waiting for a pull request.

2014-03-31 at 8.15 PM

Think downloading the entirety of a production database is a messy way to get just a few configuration details? Me too — and with Dictator I can provision full WordPress environments without the bad assumptions that come with using production data.

Ever had a site launch that required a frantic amount of widget configuration right after changing DNS? More than I can remember — and I’m automating myself out of the problem.

Think non-posts data portability would be neat? So do I — and I built a tool for it that I’m very excited to share with you: Dictator. Try it out with wp dictator export site site-state.yml


Cooked jerk chicken with West African coconut rice and red beans yesterday, and just put chicken vindaloo in the slow cooker for today. Everyone keeps offering to help out, but I’m enjoying the role of daddy doula just a little too much.

Hello world, meet Ava Lucille


After 41 weeks and one day in the making (and 16 hours of labor), our daughter Ava Lucille Bachhuber finally joined Leah and I on Monday at 4:01 pm. She’s beautiful, happy, healthy, and such a cute darling.

Aside from what you’d expect — long nights, taking on the doula responsibility to support Leah and Ava — I’ve had two pleasant surprises so far:

  1. Home births are underrated, magical experiences for the birth partner. I consider myself very fortunate to have helped support Leah every step of the way, and to have gotten skin time with Ava just after her.
  2. My sense of responsibility has increased a hundredfold. It’s amazing how your priorities can shift in a heartbeat.

Looking forward to many more pleasant surprises on this journey.

Co-Authors Plus 3.1: Manage co-authors from Quick Edit, misc improvements

Co-Authors Plus makes it possible to assign multiple bylines to posts, pages, and custom post types via a search-as-you-type meta box. Thanks to Mike Patek at Vocativ, version 3.1 includes co-author management via Quick Edit:

2014-03-17 at 3.48 PM

Also in this release:

  • Updated Spanish translation, courtesy of sergiomajluf.
  • Now matches core behavior when displaying author archive on multisite: user of the blog, or previously published author on the blog.
  • Breaking change: “Create Profile” link is no longer shown by default on the Manage Users screen. Instead, it can be enabled with the coauthors_show_create_profile_user_link filter.
  • Guest authors work properly with Jetpack Open Graph tags. Props hibernation.
  • Guest author profile editor now supports a few different fields. Props alpha1.
  • New coauthors_count_published_post_types filter for specifying the post type(s) used when calculating the user’s number of published posts.
  • Bug fix: Ensure post_author is set to one of the co-authors assigned to a post.
  • Bug fix: Filter author feed link for guest authors on the author page. Props hibernation.
  • Packages a composer.json file for those using Composer.
  • Beginnings of unit test coverage for core features. Increased minimum required WordPress version to 3.7 because unit testing framework doesn’t work reliabilty below that.

Please leave feedback, bug reports, and praise in the forums. You can also get involved with development on Github.