This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

WordPress Access Control


Now with shortcodes and post/custom-post-type support, as well as a comprehensive admin interface for setting plugin defaults

WordPress Access Control is a plugin designed to integrate into membership sites where certain pages, posts and custom post types should only be available to members of the site. The plugin offers fine tuned features for this purpose, including the ability to set site wide defaults and override these on a per-page basis.

You can easily set a page to be accessible only by members of your site, or even a specific role. You can also set pages to be accessible only to non-members of your site, useful for registration pages.

By default, you can add Members only pages to your menus, and users who cannot access them (non-members) won’t be able to see them. This applys to the children of a menu item as well, making it easy to build a separate menu for your members.

Additionally, you have the ability to customize search pages, completely hiding posts/pages from search results if a user can’t access them, showing search results without an excerpt, or showing search results normally.

New Features in 4.0

Enhanced theme compatiblity! We now have a much smaller impact on sites due to a new way of implementing our nav walker code. This should significantly improve compatability with third party themes.

New Features in 3.1

  • You can add member only versions of each menu on your site (Only when using WordPress menus)
  • You can make certain widgets only visible to members or non-members.

Translators: The POT file is included with the plugin and all text output uses gettext functions. Alternatively, you may download the POT file from

Documentation: The plugin includes comprehensive documentation file accessible via the plugin directory


  • The meta box added by this plugin
  • The comprehensive admin settings interface
  • The new nav menu options for creating member only menus
  • The widget options for making widgets visible only to members/non-members


Installation is very simple:

  1. Upload wordpress-access-control/ to your websites plugins folder (/wp-content/plugins/ by default)
  2. Login to your WordPress admin
  3. Navigate to Plugins
  4. Activate WordPress Access Control

You can change settings by going to Settings > Members Only Settings


Installation Instructions

Installation is very simple:

  1. Upload wordpress-access-control/ to your websites plugins folder (/wp-content/plugins/ by default)
  2. Login to your WordPress admin
  3. Navigate to Plugins
  4. Activate WordPress Access Control

You can change settings by going to Settings > Members Only Settings

I don’t see the controls on the page/post edit screens

Please make sure you have the meta enabled under the Screen Options panel (top right next to help)

This plugin doesn’t work with theme XYZ

Please leave a comment at and I will address it A.S.A.P.

Can I restrict content to a specific role using shortcodes?

Yes, this is a new feature in 3.1.3. Use the syntax [members role= »administrator »]Your content[/members] where administrator is the desired role


10 novembre 2017
I love this plugin. it is pretty easy to use. I appreciate your work.
3 setembre 2016 1 reply
This plugin worked great in 4.3.1 but after I updated to 4.4 it broke my website. I like the plugin though so I have reverted my wordpress to 4.3.1. Hopefully it will be updated. 1 star in 4.4 5 stars in 4.3.1
7 febrièr 2017
1. No Support or replies to questions. 2. Breaks Bootstrap sub navigation. This fix can help but it removes the functionality to hide member only nav items. If this fix is used it will always display the member only nav items:
Read all 31 reviews

Contributors & Developers

“WordPress Access Control” is open source software. The following people have contributed to this plugin.


“WordPress Access Control” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “WordPress Access Control” into your language.

Interested in development?

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


4.0.13 – September 19, 2014

  • Adding a variety of bulk action tools

4.0.12 – September 13, 2014

  • Fix PHP warning if there is no post

4.0.11 – September 13, 2014

  • Add the ability to set the default state/roles for custom post types instead of just pages & posts

4.0.10 – September 13, 2014

  • Get the localized roles using translate_user_role

4.0.9 – September 11, 2014

  • Mark as compatible with WordPress 4.0
  • Fix some checkboxes (for roles) not having label tags

4.0.8 – December 18, 2013

  • Fixing syntax errors (forgot to turn WP_DEBUG back on)

4.0.7 – December 18, 2013

  • Fixed faulty code which cause menu items to show up when they shouldn’t

4.0.6 – December 18, 2013

  • Fixed a bug with multi-level menus when using page inheritance instead of nav menus

4.0.5 – December 17, 2013

  • Fix a bug with 3rd level menus or deeper

4.0.4 – December 15, 2013

  • Decrease plugin action priority to run after other plugins (Fixes known bug with « CodeFlavours Floating Menu » plugin)

4.0.3 – December 15, 2013

  • Fixed default redirect URLs not being used

4.0.2 – December 15, 2013

  • Fixing more compatability bugs
  • Fixing PHP notices & warnings
  • Fixed bug when using page navigation fallback (no menu selected)

4.0.1 – December 14, 2013

  • Fix login redirect to remove hard coded URL

4.0.0 – December 13, 2013

  • Rewrote the Nav Walker classes to be more minimalistic and to defer actual functionality to the originally configured walker, allowing for better compatability with themes or plugins that use their own nav walkers
  • Code style updates
  • Fixing some PHP warnings/notices

3.1.4 – August 30, 2012

  • Added not/or keywords to the role option of the members shortcode, syntax: [members role= »not:guest,banned »][/members] and [members role= »or:editor,author,contributor »](Thanks to Dave Amphlett for the idea)

3.1.3 – August 30, 2012

  • Fixed a PHP warning about load_plugin_textdomain using a deprecated argument
  • Fixed a PHP error if no nav menu is set
  • Added a role option to the members shortcode (Use like [members role= »administrator »][/members])

3.1.2 – December 7, 2011

  • Fixed a PHP error when there are no nav menus

3.1.1 – December 7, 2011

  • Fixed a bug that might cause memory issues

3.1 – December 7, 2011

  • Custom Post Type section is no longer displayed on the options page if there are no custom post types
  • Members Only Blog now properly restricts the entire site
  • Admins now have the ability to override permissions to prevent lower level users from denying admins access to posts
  • Admins may now create menu widgets that are only visible to members or non-members from the Widgets screen
  • Admins may now create WordPress nav menus that are only visible to members
  • Updated the documentation
  • Added new screenshots

3.0.5 – June 6, 2011

  • Fixed the PHP issue properly this time

3.0.4 – June 6, 2011

  • Fixed a PHP issue if a second argument wasn’t supplied to several functions

3.0.3 – June 5, 2011

  • Added an option to apply members settings to all children of a page
  • Fixed a bug where the page navigation for posts/archives was broken
  • Fixed a bug where themes that used the_content on archive/search pages could show all the contents of a post instead of the no excerpt message

3.0.2 – June 2, 2011

  • Added do_shortcode commands to allow nested shortcodes in the [members] and [nonmembers] shortcodes

3.0.1 – June 1, 2011

  • Fixed an issue where a members only blog with no redirect link specified would cause an infinite loop

3.0 – May 26, 2011

  • Added an admin options page
  • Added an option to allow pages to show up in menus even if a user cannot access them
  • Added support to make an entire blog members only
  • Added options to set the defaults of all options for pages and posts
  • Added support for posts
  • Added support for searching/archives
  • Added better support for custom post types
  • Added a redirect_to argument even when using custom redirect links
  • Added [member][/member] and [nonmember][/nonmember] shortcodes


  • Added an icon on the page list dialog that shows Non-member or Member only statuses
  • Bug Fix: Fixed a PHP4 bug by replacing self with the full class name thanks to itpixie
  • Bug Fix: Fixed a bug where pages with roles set could lock an administrator out (Thanks to evlapix for reporting)
  • Bug Fix: After logging in you are now redirected back to the page you were trying to access


  • Added the ability to mark pages as non-members only
  • Added the ability to restrict pages to specific roles
  • Added the ability to set the redirect URL for users with incorrect permissions


  • Fixed a problem with certain themes that use wp_list_pages as my plugin didn’t affect that function. It does now, as we hook into get_pages. Also updated some of the code to better reflect WordPress coding standards


  • Fixed a problem in pre WordPress 3 instances where a PHP error is generated due to lack of the Walker_Nav_Menu class


  • Fixed (X)HTML validation errors caused by an empty ul which could occur if all items in a submenu were members only but the parent element was not.


  • Fixed a bug where third level menu items with members only attributes would break the HTML/menu


  • Fixed an error where submenus would still be generated if the parent was marked as members only. This has been fixed.


  • Added support for PHP4


  • Added support for wp_page_menu


  • Added a filter which catches a fallback to wp_page_menu and removes our walker class from the arguments list


  • Added a filter which removed the need to change the wp_nav_menu commands


  • Initial Version