One of the nice features of many wikis is that site members can add content. Allowing others to help in the content creation takes some of the burdens off of the site owner and it lets members contribute in areas that they are passionate about.
WordPress manages the site permissions according to the user’s role. WordPress comes by default with 5 common roles, and more can be created:
- Administrators can do everything.
- Editors have full control over the content sections of the site, but not of things like themes, plugins, and users. Editors can create, edit, publish, and delete their own content and content that was created by other site members.
- Authors can create, edit, publish and delete their own content, but cannot modify or delete content created by others.
- Contributors can add and edit their own content, but cannot publish it, nor can they modify or delete content created by others.
- Subscribers have an account on the site, but can only read content created by others
(WordPress multisite also has a super admin role, but that doesn’t concern us.)
By default, Yada Wiki mirrors the permissions of the Posts content type. That is, if the user has the Author role and can add, edit, publish and delete their own content, then they can also add, edit, publish and delete their own wiki pages. To illustrate this, I created a simple ‘Wiki Test’ site and a user named Karen, who has the role of Author.
When Karen logs in, these are the menu items she sees as an Author:
As you can see, she has the Posts and Wiki Pages menu items. If you click on the Wiki Pages, All Wiki Pages menu item, she can see all of the Wiki Pages that have been created, but only to view them:
As an Author, Karen can create new Wiki Pages. Since Yada Wiki’s roles mirror the permissions for Posts, Karen can also view posts created by others and create new ones herself. This works for many sites, but for some sites, there may be a desire to only allow the user to work with Wiki Articles, and prevent them from creating Posts.
A couple of people have asked how they can allow their users to edit Wiki articles. If also allowing them to edit Posts is OK then it is built in. However, if you are only interested in permitting access to the wiki, then some more steps are needed.
I looked around at several plugins that help to manage roles and permissions and I found one that seems pretty straightforward to setup. It looks like the free version of the Advanced Access Manager plugin that is in the WordPress repository will do the trick. You can read about it and see if looks good to you.
I installed it on a test site to try it out. Once activated, you get a menu item on the left called “AAM”. Clicking on that opens the interface. There is a lot there, but I just focused on one part of it, the creating of a new role:
You click on that “Create” button I highlighted to create a new role. I did that and gave the new role the name “Wiki Author”. There is a drop down under the name field where you can choose the existing role that you want to mirror. I selected “Author” from the drop-down, but did NOT check the box to clone all access permissions … because I want something new.
Once I clicked the “Create” button, the new role was made and added to the list of roles on the right side:
I clicked on the gear icon to manage the role and the areas that authors have access to, showed in the middle section. I selected the Posts section, checked the two boxes, and then clicked the “Restrict Menus” button. That restricts the Wiki Author role from accessing the Posts menus:
The role was created. I then went to Karen’s user account and changed her role from “Author” to the new “Wiki Author” role. When Karen logs in she no longer sees the “Posts” menu item, but she still sees the same Wiki Pages menu:
If I had wanted to give the role more permissions, then I could have used the Editor role, instead of the Author role as the template.
While there are many features to the Advanced Access Manager plugin, it seems to do what we wanted without too much fuss. If you are looking to create a user role just for access to the Wiki then I hope this article is useful.