Members – Core Create Caps WordPress Plugin

Banner for the Members - Core Create Caps plugin

One of the oft-asked support questions I get is how to allow a user to edit posts/pages but not create new ones. WordPress actually allows for this with custom post types, but for backward-compatibility reasons, it’s not possible out of the box with posts and pages.

After sharing bits and pieces of code enough through the support forums, it made sense to turn this into an add-on plugin for Members.

What does the plugin do?

Members – Core Create Caps creates two new capabilities:

  • create_posts – Permission to create new posts.
  • create_pages – Permission to create new pages.

By default, creating posts and pages in WordPress is directly tied to the edit_posts and edit_pages capabilities, respectively. However, those capabilities also control who can edit posts and pages. There’s no separation between the creating and editing permissions.

In a nutshell, this plugin splits the “create” capabilities away from the “edit” capabilities.

There’s a couple of other things it does, such as register the new capabilities with the Members plugin and fix a bug in WP’s admin menu handling system. But, the core of the plugin is to provide more flexible control over managing posts/pages on sites that need it.

Known bugs

I hate to release a plugin with an existing bug, but there’s little I can do about it at this point because this bug exists in core WordPress. However, the plugin itself is useful even with the WordPress issue.

Currently, this plugin separates out the create_posts and create_pages caps. However, you cannot simply give those caps to a role without also granting the edit_posts and edit_pages caps. Of course, most people who create posts/pages will need the ability to edit them anyway.

Where this plugin shines is when you give users the ability to edit_posts and edit_pages but not the ability to create. This is particularly useful when you have an editor or admin who assigns specific posts/pages to specific users to edit (most common use case).

Get the plugin

You can purchase the add-on individually for $10 or get it as part of the Premium membership package along with all other premium content.

I hope you enjoy the plugin. And, if you have any other ideas for Members plugin add-ons, feel free to share in the comments.

2 Comments

  1. Jim
    ·Reply

    Hi Justin,
    Just a comment… I used your members plugin for about a year (2016-2017). Last summer I trashed the site due to time constraints. Last month I re-invented the site, heading first to your Members plugin because it worked so seamlessly and was very simple to understand. (I am a newbie). Since activating the plugin I have had nothing but problems… several phone conversations with my hosting provider and much heartache, hours of trying to get the site to allow consistent user logins.

    Finally, I achieved success by upgrading the php version. (Your plugin DID tell me I needed to upgrade the version). The problem is, no matter what version I would use, the plugin would work for a day or so, then back to same problem… no users could log in on any browsers. A redirect was always implemented sending them back to the sign in screen.

    My final resolution was to use a different plugin. I just wanted to let you know how much I liked the Members plugin. It was very simple, and suited my needs perfectly. I didn’t need anything fancy, just functional.

    FYI… any php handler in my htaccess file php-56 and above creates this problem. Using Gambit theme (child). WP says not tested with my current theme. I hope this helps, and will check back often to see if any bugs have been found, or if your plugin has been tested compatible.


    1. ·Reply

      Members doesn’t handle any of the stuff related to logging in or anything like that. That’s all handled by WordPress itself.

      Nevertheless, I’d be happy to help look at your specific situation via the support forums or our Slack channel.

Leave a Reply to Justin Tadlock Cancel reply

Your email address will not be published. Required fields are marked *