Editor Menu Control
A really simple WordPress plugin that removes certain parts of the admin panel for editors user role. The administrator can uncheck which menus from the admin panel can be hidden.
by Simeon Zhelev · github.com/simeon-zhelev/wordpress-editor-menu-control-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/simeon-zhelev/wordpress-editor-menu-control-plugin/archive/refs/heads/main.zipReadme
Editor Menu Control
A 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.