Content Control – User Access Restriction Plugin


Content Control is a lightweight and powerful plugin that allows you to take complete control of your website’s content by restricting access to pages/posts to logged in users, specific user roles or to logged out users.

The plugin also enables you to restrict access to certain parts of a page/post using shortcodes e.g [content_control]Logged in content[/content_control]

Lastly, the plugin allows you to control the visibility of each sidebar/footer widget by selecting who can view each widget (everyone, logged out users, logged in users, specific user roles).

Full Feature List

Content Control allows you to do the following:

  • Restrict access to pages/posts to logged in/out users or specific user roles
  • Restrict access to media attachment pages, tags, categories, format to logged in/out users or specific user roles
  • Display a custom message to users who do not have permission to view the content
  • Redirect users who do not have permission to view the content to login page (redirects back to page/post after login), website homepage or custom URL
  • Display certain content on a page/post to logged in users only
  • Display certain content on a page/post to specific user roles
  • Display certain content on a page/post to logged out users
  • Apply custom CSS classes to on page content restriction shortcodes
  • Control the visibility of each sidebar/footer widget by selecting who can view each widget (everyone, logged out users, logged in users, specific user roles).

Note: Content Control restricts access to media at the content level via the media attachment pages. Content Control does not restrict access at the server level to actual media files (e.g.: .jpg, .gif, .pdf, and .webp files).


This example allows only logged-in subscribers and editors to see the text “Logged in content”.

[content_control roles=”subscriber,editor” class=”custom-css-class” message=”You don’t have access to this.”]Logged in content[/content_control]

If you are logged out or aren’t logged in as a subscriber or editor, you’ll see the “You don’t have access to this.” denial message.

All parameters are optional. If you add a parameter, make sure it’s followed by an equals (=) sign and the values of your parameters are inside double quotes (“”).

List of parameters:

  • roles – By default, all roles will have access to restricted content. If you want to give access only to specific roles, add this parameter with a comma-separated list of valid WordPress user roles wrapped by double quotes (“”). See the example above.
  • logged_out=”1″ – Only logged out visitors can see this content. If you want the opposite (only logged-in people can see the content), leave this parameter out. I.e., By default, Content Control restricts content so only logged-in visitors can view it.
  • class – Add the name of your custom CSS class if you want to add custom styles to your restricted content.
  • message – Your custom denial message if you want to override the default message from the plugin settings.

Created by Code Atlantic

Content Control is built by the Code Atlantic team. We create high-quality WordPress plugins that help you grow your WordPress sites.

Check out some of our most popular plugins:

  • Popup Maker – #1 Popup & Marketing Plugin for WordPress
  • User Menus – Show Or Hide Menu Items For Different Users

Requires WordPress 3.6 and PHP 5.3


  • Create unlimited restriction sets.
  • Choose who can see the restricted content.
  • Display a message in place of restricted content.
  • Redirect users to log in or to another page if they access restricted content.
  • Choose any content you can think of to protect.
  • Use shortcodes to protect content inline.
  • Restrict widgets as well.


Minimum Requirements

  • WordPress 3.6 or greater
  • PHP version 5.3 or greater


  • Install Content Control either via the plugin repository or by uploading the files to your server.
  • Activate Content Control.

If you need help getting started with Content Control please see FAQs which explains how to use the plugin.


Where can I get support?

If you get stuck, you can ask for help in the Content Control Plugin Forum.

Where can I report bugs or contribute to the project?

Bugs can be reported either in our support forum or preferably on the Content Control GitHub repo.


8 juni 2023
Using your example "[content_control roles=”subscriber,editor” class=”custom-css-class” message=”You don’t have access to this.”]Logged in content[/content_control]" I created the text for roles administrator and editor to try to show text. My Shortcode [content_control roles=”editor” message="no comment"](Deadline eventually to be extended to e.g. 15 July, and even 31 July)[/content_control] or [content_control roles=”administrator” message="no comment" ](Deadline eventually to be extended to e.g. 15 July, and even 31 July)[/content_control] within a page edited with WP Editor/Gutenberg, simply never showed, neither for a logged in user who is editor, nor one who is administrator. After several rounds of struggles I noticed that if cursive double-quotes are used around the roles, as shown above, IT FAILS TO WORK, but if turned to straight double quotes it works !!! You may also wish to explain whether roles with leading caps or all lower case work (best). I'll keep using it, but the documentation could be much improved.
31 mei 2023
I love it. Free, simple to use, and lightweight. I was using a complicated profile plugin which had a control restriction feature, but it had tons of features I didn't really need, so I'm glad I found this plugin. Totally recommeneded!
29 mei 2023
Only 10 of my 49 post categories are visible in the drop down to choose what content to restrict, so this isn't working for me. But I got support really quickly and by "searching" in the box I could find and use my other categories.
11 mei 2023
Funciona super bem. Estou satisfeito e recomendo!
Lees alle 446 beoordelingen

Bijdragers & ontwikkelaars

“Content Control – User Access Restriction Plugin” is open source software. De volgende personen hebben bijgedragen aan deze plugin.


“Content Control – User Access Restriction Plugin” is vertaald in 9 talen. Dank voor de vertalers voor hun bijdragen.

Vertaal “Content Control – User Access Restriction Plugin” naar jouw taal.

Interesse in ontwikkeling?

Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.


v1.1.10 – 12/28/2022

  • Security: Fix unescaped output for CSS classname in the [contentcontrol] shortcode allowing users with the ability to edit posts to inject code into the page.

v1.1.9 – 09/30/2021

  • Fix: Error when using Gutenberg Preview.

v1.1.8 – 07/17/2021

  • Fix: Error when Elementor instance preview proptery was null.

v1.1.7 – 07/17/2021

  • Fix: Prevent warning if widget settings don’t exist in options table.
  • Fix: Arbitrary limit of 10 on current items listed in Restriction Editor due to WP query default args.
  • Fix: Prevent restrictions from activating when using the Elementor page builder.

v1.1.6 – 03/21/2021

  • Fix: Nonce validation was preventing 3rd party plugin from saving widget settings when it failed. Thanks @jacobmischka
  • Fix: Prevent corrupted options from preventing saving of settings.

v1.1.5 – 02/22/2021

  • Fix: Issue where roles with - would not save when checked.

v1.1.4 – 03/24/2020

  • Improvement: Added gettext handling for several strings that were not translatable.
  • Tweak: Process shortcodes in default denial message contents.
  • Tweak: Various improvements in form reliability & user experience.
  • Fix: Issues with ajax search fields not retaining their values after save.
  • Fix: Issue where only would show 10 pages.
  • Fix: PHP 7.4 compatibility fixes.

v1.1.3 – 12/03/2019

  • Fix: Custom post type conditions were not always registered.

v1.1.2 – 11/10/2019

  • Tweak: Remove erroneous console.log messages in admin.
  • Fix: Fatal error when empty shortcode used.

v1.1.1 – 10/15/2019

  • Fix: Bugs where variables were not always the expected type.


  • Improvement: Added default denial message to shortcode.
  • Improvement: Render nested shortcodes in the [content_control] shortcode.
  • Fix: Bug where multiple roles checked together in restriction editor.


  • Fix: Minor notice on activation.


  • Fix: Call to undefined function.


  • Fix: Non static method called statically
  • Fix: Bug when using invalid variable type.


  • Initial Release