Description
EffortLess Login Protected Content is a simple yet powerful WordPress plugin that allows you to restrict access to specific pages and categories for logged-in users only.
Features
- Selective Protection: Choose which pages and categories to protect
- Automatic Menu Hiding: Protected content is automatically hidden from menus for non-logged-in users
- Smart Redirects: Unauthenticated users are redirected to the login page with return URL
- Login/Logout Menu Item: Automatically adds login/logout link to your primary menu
- Category Protection: Protect entire categories and all posts within them
- Easy Configuration: Simple checkbox interface in WordPress admin
- Lightweight: No bloat, minimal performance impact
- Translation Ready: Fully internationalized and ready for translation
How It Works
- Install and activate the plugin
- Go to Settings > Login Protected Content
- Select the pages and/or categories you want to protect
- Save your settings
- Non-logged-in users will be redirected to the login page when trying to access protected content
Use Cases
- Member-only content areas
- Private documentation
- Exclusive resources for registered users
- Protected blog categories
- Client portals
- Course materials
Support
For support, feature requests, or bug reports, please visit the plugin support forum.
Privacy Policy
This plugin does not collect, store, or transmit any user data. It only uses WordPress core functionality to check user login status and restrict content access.
Credits
Developed by domclic
Installation
Automatic Installation
- Log in to your WordPress admin panel
- Navigate to Plugins > Add New
- Search for “EffortLess Login Protected Content”
- Click “Install Now” and then “Activate”
Manual Installation
- Download the plugin zip file
- Log in to your WordPress admin panel
- Navigate to Plugins > Add New > Upload Plugin
- Choose the downloaded zip file and click “Install Now”
- Activate the plugin
Configuration
- Navigate to Settings > Login Protected Content
- Select the pages you want to protect
- Select the categories you want to protect
- Click “Save Settings”
FAQ
-
Who can access protected content?
-
Only logged-in users can access pages and categories you’ve marked as protected. All other visitors will be redirected to the login page.
-
What happens when someone tries to access protected content?
-
They are automatically redirected to the WordPress login page. After logging in, they’ll be redirected back to the content they were trying to access.
-
Yes! Protected pages and categories are automatically hidden from navigation menus for non-logged-in users.
-
Can I protect individual posts?
-
Currently, you can protect posts by protecting their category. All posts in a protected category are automatically protected.
-
Does this work with custom post types?
-
The current version supports standard WordPress pages and posts/categories. Support for custom post types may be added in future versions.
-
Will this affect my site’s SEO?
-
Protected content will not be accessible to search engines unless they’re logged in (which they typically aren’t), so protected pages won’t be indexed.
-
Is this plugin compatible with caching plugins?
-
The plugin should work with most caching plugins, but you may need to exclude the login page from caching for best results.
-
Can I customize the redirect URL?
-
Currently, the plugin redirects to the WordPress login page. Custom redirect URLs may be added in a future version.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“EffortLess Login Protected Content” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “EffortLess Login Protected Content” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.8
- Added: donate notice on the settings screen
2.0.7
- Renamed all prefixes from effolopr_/EFFOLOPR_ to ellpc_/ELLPC_ to follow the EffortLess naming convention (el + lpc for Login Protected Content)
2.0.6
- Renamed all prefixes to effolopr_/EFFOLOPR_ to comply with WordPress.org unique prefix requirement (was lpc_/ELLPC_)
- Updated admin page slug, settings group, section, and field IDs to use effolopr_ prefix
2.0.5
- Added translations for Chinese (Taiwan), French, Spanish, German, and Italian
2.0.4
- Fixed: init() was called outside class_exists guard, risking fatal or double hook registration on class name collision
- Fixed: get_pages()/get_categories() returning false (via filter) caused fatal in PHP 8+ — now guarded with is_array()
- Fixed: main RSS feed leaked posts from protected categories to unauthenticated users
- Fixed: is_admin() returned true during front-end AJAX searches, bypassing category exclusion — replaced with is_admin() && !wp_doing_ajax()
2.0.3
- Fixed: posts in protected categories were visible in home, search, tag, and archive pages (added pre_get_posts exclusion)
- Fixed: potential fatal when get_queried_object() returns non-WP_Term on category archives (added instanceof guard)
- Fixed: post-type menu items in protected categories were not hidden from unauthenticated users
- Fixed: $args->theme_location accessed without isset() guard in add_login_logout_link()
- Fixed: missing class_exists() guard to prevent fatal on class name collision
- Refactored: merged duplicate render_pages_field/render_categories_field into shared render_checkbox_field() helper
2.0.2
- Added phpcs.xml to declare ELLPC_ prefix and fix PrefixAllGlobals PHPCS warning
2.0.1
- Fixed PHPCS warning: renamed main class to ELPC_Login_Protected_Content to comply with WordPress prefix naming convention
2.0.0
- Complete code refactoring for WordPress Coding Standards compliance
- Improved security with better escaping and sanitization
- Added translation support with text domain
- Better object-oriented structure with static class
- Enhanced admin interface with fieldsets
- Added success messages on settings save
- Improved code documentation
- Changed from wp_redirect to wp_safe_redirect for better security
- Added strict type comparisons
- Better default values handling
1.0
- Initial release
- Basic page and category protection
- Menu item hiding
- Login/logout menu link
