Part of my job as Web Application Developer at Maryville is to evaluate the tools we use for our website and decide if they are functioning the way they should. We’ve had our fair share of problems with our current content management system (CMS) that we implemented in 2008 and have decided to make the move to WordPress Multisite. For those unfamiliar with WordPress Multisite, it allows you to take a normal WordPress site and create multiple WordPress sites (a network) within one installation of WordPress.
Part of my role in this migration will be setting up the proper permissions for users across the network. If you are at all familiar with WordPress (or pretty much any CMS) it has the idea of roles for a user. Am I an administrator, editor, contributor and what actions can I do in the CMS? With WordPress Multisite, this is slightly more complicated; a user can be an editor in the Academics site, but only be a contributor in the Admissions site (or not have any permissions at all). There is a set of standard roles built in to WordPress, but you have the option to create some unique roles. Now, I want to keep this as simple for myself as possible; I don’t want to recreate that same role on 20 different WordPress sites across our network (Academics, Admissions, Student Life, etc).
Enter the Multisite Roles plugin! Initially, I was going to build a brand new plugin for creating roles network-wide, and I decided to leverage an existing plugin: Members. WordPress has this idea of hooks built into it; as a developer, you can leave a spot for other developers to “hook” into your code and do something. After a short email discussion with the developer of the Members plugin, he has agreed to put a couple hooks into his next release. This will allow my plugin to synchronize roles between all of the sites on our WordPress network when one of the roles is updated.
As soon as the next version of the Members plugin is released, you can expect to see the Multisite Roles plugin land on the wordpress.org plugin repository.