Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/simeon-zhelev/wordpress-editor-menu-control-plugin/archive/refs/heads/main.zipA lightweight WordPress plugin that lets site administrators choose which admin-panel menu items are hidden from users with the Editor role.
Author: Simeon Zhelev — zhelev.s@gmail.com
Version: 1.0.0
License: GPL-2.0+
Requires WordPress: 6.0 or later
Requires PHP: 8.0 or later
Features
- Visual card-based settings page under Settings → Editor Menu Control
- Covers all default WordPress menus; automatically detects menus added by themes and plugins
- Live counter showing how many items are currently hidden
- Search/filter to quickly find any menu item
- "Hide all" / "Show all" bulk actions
- Blocks direct URL access to hidden pages (403 response)
- Administrators are never restricted — only the Editor role is affected
Installation
- Download the plugin ZIP file.
- In your WordPress admin, go to Plugins → Add New → Upload Plugin.
- Upload the ZIP, then click Install Now and Activate.
- Go to Settings → Editor Menu Control and choose which menu items to hide from Editors.
- Click Save changes.
Alternatively, upload the editor-menu-control folder directly to /wp-content/plugins/ via FTP and activate from the Plugins screen.
Usage
Open Settings → Editor Menu Control. Each admin menu item is displayed as a card showing its current visibility status.
| Action | How |
|---|---|
| Hide a menu item | Click its card — it turns red and is marked "Hidden" |
| Show a hidden item | Click the card again to restore it |
| Bulk-hide everything | Click Hide all |
| Bulk-restore everything | Click Show all |
| Find a specific item | Type in the search box to filter cards |
When you are done, click Save changes.
How it works
| Role | Behaviour |
|---|---|
| Administrator | Always sees the full admin menu; can configure which items are hidden |
| Editor | Only sees items the administrator has not hidden; direct URL access to a hidden page returns a 403 error |
On first load the plugin captures a live JavaScript snapshot of the admin sidebar and saves it server-side, so any menus registered by third-party plugins or themes are automatically detected and appear in the settings page.
File Structure
editor-menu-control/
├── editor-menu-control.php ← Plugin bootstrap & hooks
├── includes/
│ ├── class-emc-admin.php ← Settings page, AJAX handler
│ └── class-emc-restrictions.php ← Hides menus for the Editor role
└── assets/
├── admin.css ← Settings page styles
└── admin.js ← Toggle logic, bulk actions, search
Compatibility
- Works alongside any theme or plugin that registers custom post types or admin menus.
- Does not modify user capabilities or roles — restrictions are applied at the menu display layer only.
- Compatible with WordPress Multisite (per-site settings).
Uninstall
Deactivate then delete the plugin from Plugins → Installed Plugins. All stored settings (emc_hidden_menus, emc_menu_snapshot) are removed from the database automatically.
Changelog
1.0.0
- Initial release.
License
This plugin is licensed under the GNU General Public License v2.0 or later.