Restrict Content


Restrict Content is a simple membership plugin that enables you to easily restrict access to your content to logged-in users only.

Content restriction works both with partial content restrictions using shortcodes, as well as full page restrictions for posts, pages, and most custom post types.

Restrict Content also includes front-end forms for user registration, login, and password reset so your members can do all these actions on the front end of your site without going to the wp-admin or wp-login.php pages. Display these with the [login_form] and [register_form] shortcodes.

Features of the plugin

  • Limit access to content with a shortcode, i.e. [restrict]This content is limited to logged in users.[/restrict].
  • Limit access to full content via a simple interface on the edit post, page, and custom post type screens.
  • Display a registration form for new accounts on any page of your website with [register_form].
  • Display a login form for existing users on any page of your website with [login_form].

A Pro version of Restrict Content is also available with an extensive feature set.

Restrict Content Pro features

  • Payments – including one-time payments and recurring subscriptions.
  • Integration with popular payment systems, including Stripe, PayPal Standard, PayPal Express, PayPal Pro,, 2Checkout, and Braintree.
  • Discount codes
  • Printable HTML invoices
  • Complete member management
  • Prevent account sharing
  • WooCommerce integration
  • And much more. See the Features page for additional details.

Visit the Restrict Content Pro website for more information about the Pro version.


  1. Upload restrict-content to wp-content/plugins
  2. Click “Activate” in the WordPress plugins menu
  3. Go to Settings > Restrict Content and customise the Message settings
  4. Follow the instructions below to restrict content

To restrict an entire post or page, simply select the user level you’d like to restrict the post or page to from the dropdown menu added just below the post/page editor.

To restrict just a section of content within a post or page, you may use shortcodes like this:

[restrict userlevel=”editor”] . . . your restricted content goes here . . . [/restrict]

Accepted userlevel values are:
* admin
* editor
* author
* subscriber
* contributor

There is also a shortcode for showing content only to users that are not logged in.

[not_logged_in]This content is only shown to non-logged-in users.[/not_logged_in]


Does this plugin include front-end login or registration forms?

Yes! Frontend forms are provided for user registration, login, and password reset.

Does this plugin support custom user roles?

No. If you need custom role support, check out Restrict Content Pro


December 12, 2018
It's exactly what I need to use with private pages to have another layer of control in a Knowledge Base, instead of just public/private default WordPress behavior. Good job Pippin!
November 29, 2018
This plugin is great! I always use it when I need a restriction plugin. I have used it on multiple sites and it works great! The best thing about it is the login form. Great for creating a "members" page. The login form does not send the users to the standard WP login form, it's a form on the front end. Love it! Keep up the good work. I would love a translation in Swedish, please let me know if you want me to translate it 🙂
September 24, 2018
Entering messages into the "restricted" text field via the settings does not show on a page that is set to be restricted. So if you have a password set to the page, it doesn't allow you to say "Please login..." at this other duplicated place, so that you can see the password field to enter this page's password. I even tried the short code for if not logged in, so a person knows they need to sign in first, so that the system can see the user's level, and then show another field for the page password. So convoluted.
Read all 43 reviews

Contributors & Developers

“Restrict Content” is open source software. The following people have contributed to this plugin.


“Restrict Content” has been translated into 7 locales. Thank you to the translators for their contributions.

Translate “Restrict Content” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change log


  • Fix: Registration now works properly if you have JavaScript disabled in your browser.


  • Fix: Content visibility in the REST API.


  • Tweak: Remove hard-coded red colour from restricted messages. A class rc-restricted-content-message has been added to the span tag if you’d like to add the colour back in with CSS.
  • Tweak: The Restrict Content plugin is now automatically deactivated when Restrict Content Pro is activated.


  • New: Login form shortcode – [login_form]
  • New: Password reset form – part of the [login_form] shortcode
  • New: User registration form – [register_form] shortcode
  • New: Improved compatibility with Restrict Content Pro, allowing for seamless upgrades
  • Fix: Undefined index PHP notice
  • Tweak: General code cleanup and improvements


  • Fix: Undefined nonce index when saving some post types
  • Fix: Removed restrict metabox from post types that it does not apply to
  • Fix: Made restricted message shown in feeds translatable
  • Fix: Some text strings not translatable
  • Tweak: Added new rcp_metabox_excluded_post_types filter


  • Removed incorrect contextual help tab


  • Some general code cleanup and compatibility checks for WordPress 4.1+


  • Improved settings page to match core WordPress UI
  • Fixed problem with unescaped HTML in restricted messages options
  • Added complete internationalisation on default language files


  • Added do_shortcode() to the not logged in shortcode


  • Fixed a problem with the not logged in shortcode.


  • Added new [not_logged_in] short code.


  • Added settings page with options to configure each of the messages displayed to users who do not have permission to view a page.
  • Improved the performance of several functions.
  • Better organisation of the plugin files and improved infrastructure for soon-to-come new features.