-
General
-
- How to Find the Latest Versions of PublishPress Plugins
- Changelogs for Free PublishPress Plugins
- Changelogs for PublishPress Authors
- Changelogs for PublishPress Blocks
- Changelogs for PublishPress Capabilities
- Changelogs for PublishPress Checklists
- Changelogs for PublishPress Future
- Changelogs for PublishPress Permissions
- Changelogs for PublishPress
- Changelogs for PublishPress Revisions
- Changelogs for PublishPress Series
- Changelogs for the PublishPress Theme
-
PublishPress Authors
-
PublishPress Blocks
-
- Advanced Accordion Block
- Advanced Button Block
- Advanced Icon Block
- Advanced Image Block
- Advanced List Block
- Advanced Table Block
- Advanced Tabs Block
- Advanced Video Block
- Columns Manager Block
- Content Display Block
- Contact Form Block
- Countdown Block
- Count Up Block
- Images Slider Block
- Info Box Block
- Login / Register Form Block
- Map Block
- Newsletter Block
- Search Bar Block
- Social Links Block
- Summary Block
- Testimonial Block
- Woo Products Block
- Feature List block
- Pricing Table block
- Core Blocks
-
PublishPress Capabilities
-
- The Admin Menus Screen
- Control Access to WooCommerce Admin Menus
- Control Access to Contact Form 7 Admin Menus
- Control Access to Yoast SEO Admin Menus
- Control Access to Elementor Admin Menus
- Control Access to Jetpack Admin Menus
- Control Access to WPForms Admin Menus
- Control Access to The Events Calendar Admin Menus
- Control Access to Gravity Forms Admin Menus
-
PublishPress Checklists
-
- Number of characters in title
- Numbers of words in content
- Number of categories
- Number of tags or taxonomy terms
- Number of characters in excerpt
- Number of internal links in content
- Number of external links in content
- All links use a valid format
- ALT Text for all images
- Featured image
- Latin characters in permalink
- Approved by a user in this role
- Yoast SEO tasks
- WooCommerce product tasks
- Featured image height and width
-
PublishPress Future
- Introduction to PublishPress Future
- Ways to Expire Posts
- Defaults for Post Types
- PublishPress Future Email Notifications
- Shortcodes to Show Expiration Date
- Automatic Footer Display for Expiry Dates
- Scheduling in PublishPress Future: Cron Jobs
- Technical Details for PublishPress Future
- Troubleshooting in PublishPress Future
-
PublishPress
-
- Getting Started With Notifications in PublishPress
- Understanding the PublishPress Notification Options
- Get PublishPress Notifications by Email or Slack
- How to Customize PublishPress Notifications With Shortcodes
- How to Use Reminder Notifications
- Notify Me: How to Manually Add Yourself to Notifications
- The PublishPress Notifications Log
- Hooks and Filters for Notifications
- Troubleshooting Email Notifications in PublishPress
-
PublishPress Permissions
-
- Control Access to Custom Post Types
- Control Viewing Access to Specific Categories
- Allow Editing of Specific Pages
- Force Users to Create Posts in a Category or Parent Page
- Block Users from Seeing Non-Editable Posts
- Control Viewing Permissions for WordPress Content
- Control Editing Permissions for WordPress Content
- Block Access to WordPress Category and Tag Archives
- Configure Who Can See Other People's Posts
-
- Developer Information for Permission Groups
- PublishPress Permissions Database Tables and Settings
- pp_create_group()
- pp_delete_group()
- pp_get_group()
- pp_get_group_by_name()
- pp_get_metagroup
- pp_get_groups()
- pp_get_group_members()
- pp_get_groups_for_user()
- pp_add_group_user()
- pp_remove_group_user()
- pp_update_group_user()
- ppc_get_roles()
- ppc_assign_roles()
- ppc_get_exceptions()
- ppc_assign_exceptions()
-
PublishPress Revisions
-
- Does My Plugin Support PublishPress Revisions?
- A List of Some Plugins Supported by PublishPress Revisions
- PublishPress Revisions Pro and The Events Calendar
- PublishPress Revisions Pro and WooCommerce
- PublishPress Revisions Pro and Advanced Custom Fields
- PublishPress Revisions Pro and WPML
- PublishPress Revisions Pro and Custom Post Type UI
- PublishPress Revisions Pro and Yoast SEO
- PublishPress Revisions Pro and the PODS Framework
- Submit and Moderate Revisions with the Divi Theme
- Create Revisions Using an API
- PublishPress Revisions Pro and Elementor
- PublishPress Revisions Pro and Beaver Builder
-
PublishPress Series
-
PublishPress Theme
-
How-to Guides
-
- A WordPress Editorial Workflow for Writing, Reviewing and Publishing
- A WordPress Workflow for Editing and Reviewing
- Create a Workflow for University Departments in WordPress with PublishPress
- Create a Multi-Step Workflow in WordPress
- How to Create a Publishing Workflow for Authors in WordPress
- How to Get 2 People to Approve Content in WordPress
-
- How to Allow WordPress Admin Area Access for WooCommerce Users
- How to Manage Permissions for WooCommerce Products
- Allow WooCommerce Users to Edit Only One Product
- How to Approve and Schedule Changes to WooCommerce Products
- WooCommerce Users Can Edit Products Only in Some Categories
- How Create WooCommerce Users Who Can Only View and Edit Products
- How to Create and Schedule Revisions for WooCommerce Products
- How to Control Who Can Duplicate WooCommerce Products
- Create WooCommerce Users Who Can Only View Reports
- How to Control Who Can Access WooCommerce Coupons
- How to Create WooCommerce Users Who Can Only View and Edit Orders
- How to Manage Permissions for WooCommerce Orders
- How to Control Permissions for WooCommerce Refunds
- How to Create Checklists with WooCommerce
-
-
WordPress Permissions
-
- activate_plugins
- add_users
- create_users
- delete_others_pages
- delete_others_posts
- delete_pages
- delete_posts
- delete_plugins
- delete_private_pages
- delete_private_posts
- delete_published_pages
- delete_published_posts
- delete_themes
- delete_users
- edit_dashboard
- edit_others_pages
- edit_others_posts
- edit_pages
- edit_plugins
- edit_posts
- edit_private_pages
- edit_private_posts
- edit_published_pages
- edit_published_posts
- edit_theme_options
- edit_themes
- edit_users
- erase_others_personal_data
- export
- export_others_personal_data
- import
- install_plugins
- install_themes
- list_users
- manage_categories
- manage_links
- manage_options
- manage_privacy_options
- moderate_comments
- promote_users
- read
- read_private_pages
- read_private_posts
- remove_users
- switch_themes
- unfiltered_html
- unfiltered_upload
- update_core
- update_plugins
- update_themes
- upload_files
Allow WordPress User Roles to Edit Posts in Single Category
A PublishPress user asked us this question:
“Can I set up my WordPress site so users from “Department A” can only create and edit posts in “Category A”? Then we'd like to do the same thing for other departments.“
Yes, that is possible with the PublishPress plugins and I'm going to show you how it's done.
Note: this is also possible with other post types such as Pages. You just need to add Categories to that post type. This is possible with a plugin such as TaxoPress from WordPress.org.
Step #1. Create the Roles
You can create the roles using any plugin or technique, but we're going to show you how to do this using the PublishPress Capabilities plugin.
- Go to “Capabilities” in your WordPress admin.
- Choose “Subscriber” under “Select Role to View / Edit”.
- Click “Load”.
- Enter “Department A” into the “Copy Subscriber Role” box.
- Click “Copy”.

- You will now have a new role called “Department A”. You can now repeat this process to create “Department B” and “Department C” roles. You'll be able to see these new roles in the “Select Role to View / Edit” dropdown:

Step #2. Add the Users to Roles
Now you can go to your “Users” area and add users to these different roles. I've added one user to each of my three new roles:

Step #3. Create the Categories
The next step requires installing the PublishPress Permissions Pro plugin.
- After installing the PublishPress Permissions Pro plugin, go to Posts > Categories.
- Create a new category for “Department A”:

- Click “Edit” for the “Department A” category.
- At the bottom of the screen, check the box “enable custom permissions for Categories”.
- Click “Update”.

When the screen refreshes you will see new options:
- Post Reading Exceptions: Control who can read posts in this category.
- Post Editing Exceptions: Control who can edit posts in this category.
- Post Revision Exceptions: Control who can create revisions for posts in this category.
- Post Category Assignment Exceptions: Control who can add posts to this category.

So you can customize permissions for this category in multiple ways. We're going to use the example of “Post Editing Exceptions”. This will control who can edit posts that have this category:
In this example, we will deny editing permissions to everyone except “Department A”.

Repeat this process by creating categories for Department B and Department C users. Make sure to set the correct permissions using the “Post Editing Exceptions” area.
Step #4. Test the user accounts
At this point, I would highly recommend testing the user accounts to make sure their permissions are accurate.
First, let's create a test post:
- Create a Post.
- Add the “Department A” category to your new Post:

Now we're going to login using one of the accounts that we want to restrict.
If you're using dummy users, you can reset their passwords. If you're testing with real users, the User Switching plugin is very helpful.
In this example, the Department A users will only be able to see the “Posts” menu link and the Posts that have the “Department A” category. They will not see the Posts for any other department.

Repeat this test for your other departments. When you're finished, you should now have a site with user in different roles can only post or edit content in the category that you choose.
In this tutorial we focused only on editing, but you can also customize the category permissions for reading, creating posts, and creating revisions. PublishPress Permissions Pro is a very powerful and flexible plugin.