描述
Control which menu items are shown based on login status, user role, device type, page type, or archive context. Rules are configured directly in the WordPress nav-menu editor and evaluated on every page load.
评价
此插件暂无评价。
贡献者及开发者
更新日志
1.0.10
- Fix: renamed the donate-notice class to the plugin’s own ELLMV_ prefix (Plugin Check flagged the shared, un-prefixed class name).
- Fix: corrected @package doc tag casing to EffortLess (capital L), matching the plugin’s display name.
1.0.9
- Fix: corrected “Contributors” in readme.txt to the actual WordPress.org owner username.
1.0.8
- Add: donate notice on the Menus admin screen.
1.0.7
- Fix: removed load_plugin_textdomain() call (discouraged since WP 4.6; translations load automatically).
- Fix: removed “Domain Path” header pointing to a non-existent /languages folder.
1.0.6
- Fix: removed duplicate Plugin URI/Author URI header values flagged by the plugin review team.
1.0.5
- Update: Confirmed compatibility with WordPress 7.0.
1.0.4
- Update: plugin display name corrected to EffortLess Layered Menu Visibility.
- Update: Tested up to WordPress 7.0.
1.0.3
- Add: children of a hidden parent menu item are now also hidden (cascades to any nesting depth).
- Add: uninstall.php removes all _ellmv_visibility_rules post meta when the plugin is deleted.
1.0.2
- Fix: translations never loaded because load_textdomain was registered on plugins_loaded from inside a plugins_loaded callback; now called directly.
- Remove: stale bug-reference comments from PHP and JS files.
- Refactor: hoist wp_get_current_user() above the rule loop in is_menu_item_visible().
1.0.1
- Fix: Front-end filtering was completely inert — add_custom_fields hook moved out of admin_init so it fires on the public front-end.
- Fix: Shared POST field names caused every menu item to inherit all other items’ rules on save; field names are now scoped per item ID.
- Fix: PHP translation call inside the static JS file is now delivered via wp_localize_script.
- Fix: “Add Rule” with no existing rules produced an empty type select; options are now built from server-provided data.
- Fix: Value ‘0’ was silently dropped by empty(), making boolean negation (not logged-in, not mobile, not archive) impossible.
- Fix: JS rule index collision after a removal could overwrite a surviving rule on save; replaced with a monotonic counter.
- Fix: Missing wp_unslash() before sanitize_text_field() on $_POST values.
- Fix: Boolean rule types now use a Yes/No select and compare against ‘1’/’0′ instead of relying on PHP bool cast of an arbitrary string.
1.0.0
- Initial release.