WordPress Access Control

Download Link: Download from WordPress.org

This plugin has received over 170,000 downloads between it’s two versions (I renamed it and has to create a second plugin).


Now with the ability to create member only widgets and menus! (3.1)

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 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 here.

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

Planned Features

  • Support for making posts members only
  • Support for post excerpts, but the full view will only be available to members
  • Completely hiding members only posts unless logged in
  • Hiding of member only posts from the feed and accessing them using feed keys
  • Hiding all pages
  • Hiding all blog posts
  • Members only blog
  • Support for custom post types (Making any custom post type members only)
  • Alternative menus for members
  • The opposite of all features (Ex: Menu items only available if you’re not logged in), not sure if this would be useful to anyone or not. Maybe for a registration page


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


  • 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 and 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 and shortcodes
  • 2.01
    • SVN didn’t package templates folder for some reason
  • 2.0
    • 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
  • 1.6.4
    • 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
  • 1.6.3
    • Fixed a problem in pre WordPress 3 instances where a PHP error is generated due to lack of the Walker_Nav_Menu class
  • 1.6.2
    • 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.
  • 1.6
    • Fixed a bug where third level menu items with members only attributes would break the HTML/menu
  • 1.5
    • Fixed an error where submenus would still be generated if the parent was marked as members only. This has been fixed.
  • 1.4
    • Added support for PHP4
  • 1.3
    • Added support for wp_page_menu
  • 1.2
    • Added a filter which catches a fallback to wp_page_menu and removes our walker class from the arguments list
  • 1.1
    • Added a filter which removed the need to change the wp_nav_menu commands
  • 1.0
    • Initial Version