How to Stop WordPress Users from Creating New Posts
We recently wrote about the edit_posts permission in WordPress. This permission is incredibly powerful. The edit_posts permission controls access to at least six important writing features in WordPress:
- Access the Posts screen.
- Create new Posts.
- Edit your own Posts.
- Upload and edit Media.
- Access the Comments screen.
- Access the Tools screen
Because this one permission covers access to so many areas, it offers limited flexibility. Many PublishPress users want to be more flexible and only assign some of the options to users. Here are some example requests from PublishPress users:
“I need to set up users so they only have access to edit their page. They should not be able to add or edit any new pages.”
“My subscribers are in charge of events. I want my subscribers to be able to edit, but not create, a single post about their event.”
“My client runs a law firm and employs 50 attorneys. They would like each attorney to be able to login to the WordPress backend and be presented only with the option to update their single post. They should not be allowed to create posts.”
These problems can't be solved with edit_posts because that permission allows you to both create and edit posts. The best way to solve all these problems is with the create_posts permission.
Please note: when you enable create_posts, some user roles will automatically lose the ability to create posts. These roles are Contributor, Author and Editor. After enabling it, you must now actively give the create_posts permission to every role that needs it.
How to use the create_posts permission
I recommend that you install the PublishPress Capabilities plugin. After you install the plugin, follow these steps:
- Go to Capabilities in your WordPress admin area.
- Look for the “Unique Capabilities for Post Types” box in the right sidebar.
- Check the box “Enable the “Create” column for selected post types”.
- Click the “Update” button.
Now you can control who is able to create new posts.
- In the top-left corner of the screen, load the user role that you want to customize.
- In the center of the screen, you can now set the permissions. If you want to allow people in the Editor role to create posts, check the boxes in the “Create” column.
In the image above, Editors can edit Posts and Pages but not create new Posts and Pages.
So create_posts is a very useful permission. It allows you to have separate control over creating content and editing content in WordPress.
If you want to read more on this, check out this guide to letting users edit specific pages. You might also be interested in the powerful edit_theme_options permission.
Other restrictions you can apply to users include allowing them to update but not create content, stopping them from adding new tags, and preventing them from seeing other users' files or updating published posts.
Great plugin! I am just missing one thing that I think is supposed to be there and it is causing me trouble.
My goal is to make a role where the user ban only edit a specific page. I do not want them to be able to create new pages.
The section for “Post Editing Capabilities” is missing a checkbox under “Create”. I want be able to uncheck that capability.
Am I missing something?
Hi Scott. The “Create” checkbox should be there on the right side of the screen. If it’s not, you can get more help from our Capabilities Pro team, or the Capabilities support area on WordPress.org.