We had an interesting question from one of our users who wanted to show the “Widgets” menu for a custom role that they created. They were referring to the “Widgets” menu available in Appearance > Widgets.
They created a custom role using the PublishPress Capabilities plugin. They did this by copying the default Subscriber role. However, the Subscriber role has very few permissions, so they were having difficulties showing the Widgets menu for that custom role.
Starting with the Subscriber role is a good approach. It is wise to copy a low-capability user role and then add permissions to enable more access. This approach is easy to understand and safely defaults to no extra access, so they don't have to worry about the user roles having unwanted permissions.
However, in this case, they could not find how to enable the Widget menu for their custom role.
The capability that handles the Widgets menu is called “edit theme options”. You can find that capability in the “Themes” section, shown in the screenshot below:
This capability gives control to these menus:
- Appearance > Themes
- Appearance > Customize
- Appearance > Widgets
- Appearance > Menus
You'll also be able to see the “Customize” link in the WordPress admin bar, if it's supported by your theme.
If you only want to show the Widgets menu without other submenus, you can use the Pro version of PublishPress Capabilities. In the Pro version, there is a feature called Admin Menus, which allows you to hide unnecessary menus in the WordPress admin. This way, you can control exactly which menus are visible to your custom role and hide any unwanted submenus. You can purchase PublishPress Capabilities Pro here.