One PublishPress user asked us about this workflow in WordPress:
- They have 30+ departments in their university.
- Each department wants to create and edit it's own pages.
- There will be a website editor who approves and publishes all new pages.
Let me show you how to set up this workflow using PublishPress plugins.
Before you start, install these plugins:
Step #1. Create User Roles for each department #
Whenever you're reading with a large number of users, it's smart to organize them into user roles.
- Go to “Capabilities” in your admin menu.
- In the “Create New Role” box, enter the name of a department. In the image below, I entered “History Department”.
- Click “Create”.
- Repeat for other departments.
- Go to the “Users” link in your WordPress admin menu.
- Click “Add New”.
- Add a couple of users in each department:
Step #2. Set up permissions #
Now we have the user roles and users. It's time to decide what these users can do and not do.
- Go to “Capabilities”.
- Using the dropdown in the top-left corner, choose the role you want to edit.
- In the main part of the screen, choose these capabilities:
- Also check the “read” box:
- Click “Save Changes”.
Step #3. Create Categories #
Now we come to the trickiest part of the workflow. This is our current situation:
- Department users can login and create Pages.
- They will not be able see Pages written by anyone else.
However, there is one key problem: the users are acting as individual users. If they can not see Pages written by anyone else, that means they can't see Pages written by other members of their department.
There are several ways we could approach this problem with PublishPress plugins, but in this example we'll use categories.
There are several ways to add categories to Pages. I'm going to suggest a plugin called Simple Taxonomy:
- Install the TaxoPress plugin.
- Go to “TaxoPress” then “Taxonomies” in your WordPress admin menu.
- Click “Add New”.
- Enter “Departments” for the name of the taxonomy.
- Click “Post Types” and choose “Pages”.
- Click the “Add Taxonomy” button.
- Go to Pages > Departments.
- Create Categories for your departments:
Next, we're going to force users to use these categories.
- Install the WP Required Taxonomies plugin.
- After installation, there will be a set up screen. Choose to require taxonomies for “Pages” and “Departments”, as in the image:
Finally, we're going to restrict access to categories. We're going to rely on a technique detailed in a tutorial called “Restrict WordPress Users to Posting in One Category“.
- Go to Pages > Departments
- Choose a category to edit. In my example, I'm using “Business Department”.
When the page refreshes, you'll see a new area called “Page Editing Exceptions”.
- Choose “Enabled” for the “Business Department” role.
- Choose “Blocked” for everyone else.
- Click “Update”.
As I mentioned earlier, this step is the trickiest part of the process. Essentially you are using the categories to create permission groups for each department.
Step #4. Test the Workflow #
Login to your site as one of the users you created earlier.
In this example, here is a workflow you can test using a user in the “Business Department” role:
- The user can create Pages, but not Posts.
- They must choose the “Business Department” category. If they don't, they will get a message forcing them to choose.
- Their posts can be saved as “Draft” or “Pending Review”. They can not publish their own Pages.
- On the “All Pages” screen, they can not see Pages in other categories.
Is your test user successfully restricted to these features? Great, then you've created the set up requested by the original PublishPress user.
More options with PublishPress #
The PublishPress plugins are flexible enough that you can create many variations on this set up.
Your site may have slightly different needs. You can tweak the workflow to meet your needs. Contact us if you need any help at all.