{"id":254327,"date":"2025-10-22T11:10:57","date_gmt":"2025-10-22T11:10:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/menu-visibility-control\/"},"modified":"2026-01-05T13:40:54","modified_gmt":"2026-01-05T13:40:54","slug":"menu-visibility-control","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/menu-visibility-control\/","author":20289802,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.9","stable_tag":"1.0.9","tested":"6.9.4","requires":"5.8","requires_php":"7.2","requires_plugins":null,"header_name":"Menu Visibility Control","header_author":"davisw3","header_description":"Adds simple visibility options to WordPress menu items: show for everyone, only logged-in users, only logged-out users, or specific roles.","assets_banners_color":"","last_updated":"2026-01-05 13:40:54","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/knowledge.buzz\/donate","header_plugin_uri":"https:\/\/knowledge.buzz\/menu-visibility-control","header_author_uri":"https:\/\/knowledge.buzz","rating":5,"author_block_rating":0,"active_installs":300,"downloads":1132,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"davisw3","date":"2025-10-22 12:50:08"},"1.0.3":{"tag":"1.0.3","author":"davisw3","date":"2025-10-24 07:54:54"},"1.0.4":{"tag":"1.0.4","author":"davisw3","date":"2025-12-27 08:52:10"},"1.0.8":{"tag":"1.0.8","author":"davisw3","date":"2026-01-05 04:33:23"},"1.0.9":{"tag":"1.0.9","author":"davisw3","date":"2026-01-05 13:40:54"}},"upgrade_notice":{"1.0.8":"<p>Safe update. New visibility options added. Existing menus are not affected.<\/p>\n\n<hr \/>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3382464,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3382464,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3","1.0.4","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3382464,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3382464,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Visibility controls inside the WordPress menu editor.","2":"Role selection checkboxes.","3":"Device visibility options.","4":"Page-specific visibility selector."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4060,1865,1753,1915,6309],"plugin_category":[43,58],"plugin_contributors":[249565],"plugin_business_model":[],"class_list":["post-254327","plugin","type-plugin","status-publish","hentry","plugin_tags-conditional","plugin_tags-menu","plugin_tags-navigation","plugin_tags-roles","plugin_tags-visibility","plugin_category-customization","plugin_category-user-management","plugin_contributors-davisw3","plugin_committers-davisw3"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/menu-visibility-control\/assets\/icon-128x128.png?rev=3382464","icon_2x":"https:\/\/ps.w.org\/menu-visibility-control\/assets\/icon-256x256.png?rev=3382464","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/menu-visibility-control\/assets\/screenshot-1.png?rev=3382464","caption":"Visibility controls inside the WordPress menu editor."},{"src":"https:\/\/ps.w.org\/menu-visibility-control\/assets\/screenshot-2.png?rev=3382464","caption":"Role selection checkboxes."}],"raw_content":"<!--section=description-->\n<p><strong>Menu Visibility Control<\/strong> is a lightweight, privacy-friendly WordPress plugin that lets you decide exactly <strong>who sees each menu item<\/strong>, directly inside the WordPress menu editor.<\/p>\n\n<p>No settings pages.<br \/>\nNo lock-in.<br \/>\nNo performance overhead.<\/p>\n\n<p>Everything is managed where it belongs: <strong>Appearance \u2192 Menus<\/strong>.<\/p>\n\n<h3>\ud83d\udc41\ufe0f Visibility Options Per Menu Item<\/h3>\n\n<p>You can control visibility based on:<\/p>\n\n<ul>\n<li>\ud83d\udc65 Everyone<\/li>\n<li>\ud83d\udd12 Logged-in users<\/li>\n<li>\ud83d\udeaa Logged-out users<\/li>\n<li>\ud83e\udde9 Specific user roles (Administrator, Editor, Subscriber, etc.)<\/li>\n<li>\ud83d\udcf1 Device type (Desktop \/ Tablet \/ Mobile)<\/li>\n<li>\ud83d\udcc4 Specific pages (auto-detected list)<\/li>\n<\/ul>\n\n<p>All conditions are optional and safely combined.<\/p>\n\n<h3>\ud83d\udca1 Perfect For<\/h3>\n\n<ul>\n<li>Membership and community websites<\/li>\n<li>Client dashboards and intranets<\/li>\n<li>Multi-role WordPress sites<\/li>\n<li>Sites with mobile-specific navigation<\/li>\n<li>Blogs that need different menus for visitors vs members<\/li>\n<\/ul>\n\n<h3>\ud83d\udd27 Key Features<\/h3>\n\n<ul>\n<li>Native integration with <strong>Appearance \u2192 Menus<\/strong><\/li>\n<li>Works with <strong>any theme or page builder<\/strong><\/li>\n<li>Role-based menu visibility<\/li>\n<li>Device-based menu visibility<\/li>\n<li>Page-specific menu visibility<\/li>\n<li>Auto-hidden UI (only shows options when enabled)<\/li>\n<li>Secure (nonces, sanitization, strict validation)<\/li>\n<li>Performance-optimized (runs only during menu rendering)<\/li>\n<li>100% free, open-source, and donation-supported<\/li>\n<\/ul>\n\n<h3>\ud83e\udde0 Why Use Menu Visibility Control?<\/h3>\n\n<p>Unlike large menu or membership plugins, this plugin:<\/p>\n\n<ul>\n<li>Uses <strong>only WordPress core hooks<\/strong><\/li>\n<li>Stores <strong>minimal metadata<\/strong><\/li>\n<li>Is compatible with caching, multilingual sites, and block themes<\/li>\n<li>Does not track users or collect data<\/li>\n<\/ul>\n\n<p>It does one thing \u2014 and does it well.<\/p>\n\n\n\n<h3>Support<\/h3>\n\n<p>Need help or want to share feedback?<\/p>\n\n<ul>\n<li>Visit the <a href=\"https:\/\/wordpress.org\/support\/plugin\/menu-visibility-control\/\">support forum<\/a><\/li>\n<li>Leave a <a href=\"https:\/\/wordpress.org\/support\/plugin\/menu-visibility-control\/reviews\/#new-post\">review<\/a><\/li>\n<li>Support development via <a href=\"https:\/\/knowledge.buzz\/donate\">donation<\/a><\/li>\n<\/ul>\n\n\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the <strong>GPL v2 or later<\/strong>.<\/p>\n\n<p>You are free to use, modify, and redistribute it under the same license.<\/p>\n\n<p>Code is Poetry. \u2764\ufe0f<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/menu-visibility-control\/<\/code>, or install it from the WordPress Plugin Directory.<\/li>\n<li>Activate the plugin via <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<li>Go to <strong>Appearance \u2192 Menus<\/strong>.<\/li>\n<li>Expand a menu item and choose its <strong>Visibility<\/strong> options.<\/li>\n<\/ol>\n\n<p>No configuration required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='where%20are%20the%20plugin%20settings%3F'><h3>Where are the plugin settings?<\/h3><\/dt>\n<dd><p>There is no global settings page. All options appear directly within each menu item in <strong>Appearance \u2192 Menus<\/strong>.<\/p><\/dd>\n<dt id='can%20i%20hide%20menu%20items%20by%20user%20role%3F'><h3>Can I hide menu items by user role?<\/h3><\/dt>\n<dd><p>Yes. Select <strong>User Roles<\/strong> and choose the roles that should see the menu item.<\/p><\/dd>\n<dt id='can%20i%20show%20or%20hide%20menu%20items%20by%20device%3F'><h3>Can I show or hide menu items by device?<\/h3><\/dt>\n<dd><p>Yes. You can restrict menu items to Desktop, Tablet, or Mobile devices.<\/p><\/dd>\n<dt id='can%20i%20show%20menu%20items%20only%20on%20certain%20pages%3F'><h3>Can I show menu items only on certain pages?<\/h3><\/dt>\n<dd><p>Yes. You can select specific pages where a menu item should appear.<\/p><\/dd>\n<dt id='will%20existing%20menus%20break%20after%20updating%3F'><h3>Will existing menus break after updating?<\/h3><\/dt>\n<dd><p>No. All existing settings remain untouched. New features are opt-in only.<\/p><\/dd>\n<dt id='does%20this%20work%20with%20all%20themes%20and%20builders%3F'><h3>Does this work with all themes and builders?<\/h3><\/dt>\n<dd><p>Yes. Any theme or builder using <code>wp_nav_menu()<\/code> is fully supported.<\/p><\/dd>\n<dt id='is%20the%20plugin%20translation-ready%3F'><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. The text domain is <code>menu-visibility-control<\/code>.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Improved admin notice design on the Appearance \u2192 Menus screen.<\/li>\n<li>Added informative admin notice with documentation, review, and support links.<\/li>\n<li>Enhanced notice UX with dismiss handling and once-per-day visibility.<\/li>\n<li>Minor UI polish and internal code cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Added device-based menu visibility (desktop, tablet, mobile).<\/li>\n<li>Added page-specific visibility with automatic page selector.<\/li>\n<li>Improved menu editor UI with auto-hidden options.<\/li>\n<li>Performance optimizations.<\/li>\n<li>No changes to existing user settings.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Security hardening and nonce validation.<\/li>\n<li>Confirmed compatibility with WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Performance improvements and internal cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added role-based menu visibility.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Control WordPress menu item visibility based on login status, user roles, device type, or specific pages \u2014 lightweight and theme-agnostic.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/254327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=254327"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/davisw3"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=254327"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=254327"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=254327"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=254327"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=254327"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=254327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}