WordPress User Roles for Multi-Author Sites
WordPress has a history of winning CMS-related awards, including Best Overall Open Source CMS in 2009. But purists may argue WordPress’s label of content management system, while insisting that it’s instead a supercharged blog engine.
In reality, they have a valid point. Out of the box, WordPress is lacking many standard features found on modern content management systems, including a viable user-role management system. In its default state, WordPress is ideal for single-author blogs. But what happens if you want to launch a multi-author site or expand your present blog to include outside contributors? Such setups are typical for newspaper and magazine-style sites. In the future, WordPress may expand its features to cater to such users.
In the mean time, you’ll need to utilize plugins and make modifications to WordPress if you want to give it the traditional CMS user-role capabilities necessary for a site with multiple authors.
An Overview of the Default User Roles
WordPress supports six user roles by default: super administrator (for network or MU sites), administrator, author, editor, contributor and subscriber. Administrators obviously have control over the entire admin panel, and can modify templates, publish/edit posts, manage comments and install plugins. Editors can publish and edit posts site wide, while authors can publish and edit their own posts, but not the posts of others.
Contributors can write posts, but not publish them. Instead, their posts are submitted for review to an administrator or editor. Subscribers, of course, can comment and manage their profiles, but not publish or edit posts.
I prefer to use the contributor role when running a site with multiple authors. The reason? As an administrator, I have the ability to edit the contributor’s posts and approve them for publication. This prevents contributors from publishing content before I can review it.
Still, the contributor role has permissions I’m unhappy with, such as the ability to edit one’s published posts. For a control freak like myself, this is unacceptable.
Which leads us to the solution for advanced WordPress user management: User Role Editor.
Editing User Role Permissions
The free plugin, available in the WordPress repository, lets you modify nearly every user role permission.
To get started, download and install the plugin as you would any other, and then click on the User Role Editor link appearing in the WordPress Users panel.
From here, you’ll select the user role you want to edit. The selected check boxes show the permissions the user role presently has; the blank boxes are permissions the role does not have.
Let’s say we want to remove the ability of site contributors to edit their own posts. To do so, simply deselect the Edit Posts box, and then click Update.
Tip: The contributor role is not allowed to upload media by default. If you are using the role, and want your contributors to be able to add post images, be sure to select the Upload Files box in User Role Editor.
User Role Editor also gives you the ability to create all new user roles with custom permissions, a feature similar to the one found in content management systems like Drupal.
Role Scoper is a similar plugin, but I find its menu and interface more complicated and difficult to set.
Customizing the Admin Panel
When making modifications with User Role Editor, removed permissions will no longer appear in the admin panel for the selected user role. This prevents dead links inside the admin panel and keeps the overall clutter down. There are, however, features that appear in the panel and on the post creation screen for all user roles, regardless of permissions.
I like to take things a step further with multiple-author sites by hiding features and options that are of no use to my contributors, which is where the Adminimize plugin comes in.
For example, I prefer not to use tags on my sites. Instead, I just use categories to organize and group content. Because of this, it’s not necessary for the Tags box to appear on the post creation screen for my contributors. To remove it, I’ll simply open Adminimize and click on the Write Options – Post menu and deactivate the box for the contributor role.
Adminimize also gives you the option to hide dashboard widgets, such as the WordPress News widget and Right Now box.
As I previously mentioned, I prefer the contributor role for site writers because it prevents them from publishing content without my review. But how can one make it easy to find out when a post is waiting for review? Obviously you could log in to your admin panel every so often, but I prefer to be notified by email.
Peter’s Collaboration Emails takes advantage of the “Submit for Review” feature assigned to the contributor role and delivers an email to your inbox the instant a post is pending. It also notifies contributors by email when their post is published, and includes a link to the article.
The Edit Flow plugin is an advanced option helpful for sites with lots of contributors and multiple editors, streamlining the article publishing process and allowing editorial comments and notifications. If content generally touches multiple hands before being published, Edit Flow is a good option.
Author Bios and Images
The RichWP WordPress Themes includes a feature to add an author bio and/or picture at the bottom of published articles, but if you aren’t using it, you’ll need to pursue other options to add an author box.
Rather than manually modifying your theme’s template, consider using a plugin to generate an author box. The Cool Author Box and Author Box Reloaded plugins take care of this for you, and automatically add the box below your articles.
Advanced users can download the Author Image plugin and customize the author box further by replacing the default image generation script (usually Gravatar) with <?php the_author_image(); ?>. The plugin adds an upload tool to each author’s profile editing screen, and then injects the uploaded image where the code is used.
Some upstart sites “pay” contributors by allowing them to insert ads (such as those generated by Google Adsense) into their own posts due to budget constraints.
This process can be tricky and messy because contributors have to manually insert their ad codes into each post. To simply the process, use a plugin like Author Advertising or WordPress Multiple Author Ad Management to create a revenue-sharing environment for contributors.
Another option is to use custom shortcodes to automatically inject author ad codes. This makes it easy to add the author’s advertisement to a post by using an easy-to-remember code, such as the author’s last name. Although you can manually register shortcodes, using a custom shortcode plugin is recommended to make the transition easier if you update or switch themes.