Groups is designed as an efficient, powerful and flexible solution for group-oriented memberships and content access control.
It provides group-based user membership management, group-based capabilities and access control for content, built on solid principles.
Groups is light-weight and offers an easy user interface, while it acts as a framework and integrates standard WordPress capabilities and application-specific capabilities along with an extensive API.
Enhanced functionality is available via Official Extensions for Groups.
The official documentation is located at the Groups Documentation pages.
- Supports an unlimited number of groups
- Provides a Registered group which is automatically maintained
- Users can be assigned to any group
- Users are added automatically to the Registered group
- Supports group hierarchies with capability inheritance
- Integrates standard WordPress capabilities which can be assigned to groups and users
- Supports custom capabilities: allows to define new capabilities for usage in plugins and web applications
- Users inherit capabilities of the groups they belong to
- Groups inherit capabilities of their parent groups
Access to posts, pages and custom post types can be restricted by group.
If access to a post is restricted to one or more groups, only users who belong to one of those groups may view the post.
Fully supports custom post types, so that access to post types such as products or events can easily be restricted.
- Built-in access control that allows to restrict access to posts, pages and custom content types to specific groups and users only
- Control access to content by groups: shortcodes allow to control who can access content on posts, show parts to members of certain groups or to those who are not members –
Shortcodes: [groups_member], [groups_non_member]
- Control access to content by capabilities: show (or do not show) content to users who have certain capabilities –
Shortcodes: [groups_can], [groups_can_not]
Easy user interface
- Integrates nicely with the standard WordPress Users menu
- Provides an intuitive Groups menu
- Conceptually clean views showing the essentials
- Quick filters
- Bulk-actions where needed, for example apply capabilities to groups, bulk-add users to groups, bulk-remove users from groups
- Enable access restrictions by custom post type
- An optional tree view for groups can be shown when desired
- Provides its own set of permissions
- Administrator overrides for tests
- Cleans up after testing with a “delete all plugin data” option
- Groups is designed based on a solid and sound data-model with a complete API that allows developers to create group-oriented web applications and plugins
- All features are supported independently for each blog in multisite installations
Feedback is welcome!
If you need help, have problems, want to leave feedback or want to provide constructive criticism, please do so here at the Groups Plugin page.
Please try to solve problems there before you rate this plugin or say it doesn’t work. There goes a lot of work into providing you with free quality plugins! Please appreciate that and help with your feedback. Many thanks!
Follow @itthinx on Twitter for updates on this and other plugins.
Brazilian Portuguese translation by Walter Jaworski,
Dutch translation by Carsten Alsemgeest,
French translation by Stéphane Passedouet,
German translation by itthinx,
Lithuanian translation by Vincent G,
Spanish translation by Juan Amor,
Swedish translation by Andréas Lundgren.
Many thanks for your help!
- Where is the documentation?
The official documentation is located at the Groups Documentation pages.
- I have a question, where do I ask?
For questions directly related to Groups, you can leave a comment at the Groups Plugin page.
- How do I restrict access to a post?
Let’s assume you want members of the Premium group to be able to view some restricted posts.
- If you want to create a new protected post, simply go to Posts > Add New as usual and in the Groups box input Premium in the Read field. Save or publish your post.
- If you want to protect an existing post you can simply edit it, input Premium in the Read field of the Groups box and update the post.
In both cases, it doesn’t matter if the Premium group already exists or not, if it doesn’t, it will be created automatically.
If the Premium group already exists and you want to protect one or more existing posts in bulk, go to Posts, select all posts you want to protect and choose Edit in the Bulk Actions dropdown.
Now click Apply, select the Premium group and click Update.
After you publish or update your posts, only members of the Premium group will be able to see them.
- I want Advanced and Premium members, where the Premium members can access everything that Advanced members can access. How can I do that?
Example: Advanced and Premium members
- Go to Groups > Groups > New Group and add two new groups, let’s call them Advanced and Premium – select Advanced as the Parent for the Premium group.
- Now create an example post that only members of the Advanced group should be able to access and choose the Advanced group in the Read field of the Groups box.
- Create another post for members of the Premium group and choose the Premium group for that post.
- Assign test users to both groups, log in as each user in turn and see which posts will be accessible.
- How do I limit access to posts so that users in group A can not read the same as those in group B and vice-versa?
Example: Green and Red members
- Go to Groups > Groups > New Group and add two new groups, let’s call them Green Members and Red Members
- Now create an example post that only members of the Green Members group should be able to see and choose the Green Members group in the Groups box.
- Create another post for Red Members and choose the Red Members group for that post.
- Assign a test user to each of the groups, log in as one of them and you will see that the member of the Green Members group will only have access to the post protected by that group but not to the post protected with the Red Members group and vice-versa.
- Are access restrictions for Custom Post Types (CPT) supported?
Yes. Access restrictions can be turned on or off for specific CPTs on the Groups > Options page.
- How can I show groups that users belong to on their profile page in the admin section?
Go to Groups > Options and enable the option under User profiles.
- Developers … aka … What about Groups’ API?
The Groups plugin provides an extensive framework to handle memberships, group-based capabilities and access control.
The API documentation is available here: Groups API.
Just the plugin I needed for making groups of users.
Not bad. Not brilliantly documented though.
- Fixed a “Fatal error: Call to a member function get_role_caps() on a non-object” which
could occur in circumstances with invalid user IDs.
- Added the option to dismiss the Welcome screen.
- Updated German and Spanish translations.
- Fixed an issue with conflicting cache entries with legacy mode enabled.
- Fixed access restriction capabilities were reset when reenabling legacy mode.
- Changed the access restriction model to group-based access restrictions.
- Provides an optional legacy mode that supports the previous capability-based access restrictions.
- Optimized the approach to restrict read access on posts using groups rather than access restriction capabilities.
- Added the
groups_restrict_accesscapability which grants users to impose access restrictions.
- Fixed the order_by and order parameters in Groups_Group::get_groups()
- Added the $create parameter in Groups_UIE::render_select()
- Removed the “Chosen” library.
- Improved and reduced the footprint on the Users admin screen, now allowing to filter by one or multiple groups.
- Added a welcome screen.
- Added the option to assign groups to new users directly when creating them from the Dashboard.
- Changed the language domain to string literal instead of constant.
- Improvements on internal coding standards (single/double quotes, EOF, formatting).