Hide Menu Items by Role

外掛說明

This plugin allows you to control menu item visibility based on user roles and login status. You can:

  1. Hide menu items from specific user roles (original functionality)
  2. Show menu items only to specific user roles (new “show” mode)
  3. Control visibility based on login status (Everyone, Logged-in only, Logged-out only)

The plugin uses WordPress core filters, so no JavaScript or jQuery is required.

螢幕擷圖

安裝方式

  1. Upload the plugin files to the /wp-content/plugins/ directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Create or edit a menu item, and configure the visibility settings:
    • Select which user roles should affect visibility
    • Choose between “Hide from these roles” or “Show only to these roles”
    • Set login state visibility (Everyone, Logged-in only, Logged-out only)
  4. Save your menu.

常見問題集

How do I control who can see a menu item?

When you create or edit a menu item, new fields will appear where you can:
1. Select which user roles should affect visibility
2. Choose between “Hide from these roles” (default) or “Show only to these roles”
3. Set login state visibility:
– Everyone (no restriction)
– Logged-out users only
– Logged-in users only

Can I hide menu items for multiple user roles?

Yes, you can select multiple user roles that should be affected by the visibility rules.

What’s the difference between “Hide from these roles” and “Show only to these roles”?

  • “Hide from these roles”: Menu item is visible to everyone EXCEPT the selected roles (original behavior)
  • “Show only to these roles”: Menu item is visible ONLY to the selected roles (new behavior)

    Note: When using “Show only to these roles”, if no roles are selected, the item will be visible to everyone (to avoid accidentally hiding items during setup).

How does the login state visibility work?

The login state setting works independently of role-based rules:
– Everyone: No restriction based on login status
– Logged-out users only: Item is only visible to visitors who are not logged in
– Logged-in users only: Item is only visible to users who are logged in

If the login state rule is set to ‘Logged-out users only’, the role-based rules are not checked (for performance).

How do I change the visibility settings for a menu item?

When you create or edit a menu item, the visibility fields will appear where you can modify:
– The selected user roles
– The visibility mode (hide/show)
– The login state setting

使用者評論

2026 年 5 月 30 日
Exactly what I needed! This plugin makes it incredibly easy to show or hide menu items based on user roles, no coding required. The setup is straightforward, and it works flawlessly right out of the box. Perfect for managing different access levels in membership sites or multi-role dashboards. Highly recommend it to anyone who needs clean, granular control over their navigation menu without bloating their site with unnecessary custom code.
閱讀全部 1 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈Hide Menu Items by Role〉的開發相關工作。

參與者

將〈Hide Menu Items by Role〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

2.0.0

  • Added login state visibility control (Everyone/Logged-out only/Logged-in only)
  • Added show/hide mode toggle (Hide from these roles / Show only to these roles)
  • Added UI enhancements: when login state is ‘Logged-out users only’, other fields are visually disabled
  • Major feature update with enhanced visibility controls

1.0.1

  • Updated for compatibility with WordPress 6.7.1

1.0.0

  • Initial release with basic role-based hiding functionality.