Opened 7 years ago
Last modified 4 years ago
#42115 assigned enhancement
Customize Menus: Add "Your theme already has a basic menu" view
Reported by: | melchoyce | Owned by: | bpayton |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | 4.9 |
Component: | Customize | Keywords: | needs-patch |
Focuses: | ui | Cc: |
Description
When your theme creates a menu by default, we should display the following text:
Your theme already has a basic menu, to help readers find all your pages. If you’d like to choose what appears instead, create a new menu to replace the default.
Click the button to start.
[ Replace default menu ]
See screenshot.
Attachments (1)
Change History (7)
This ticket was mentioned in Slack in #core by melchoyce. View the logs.
7 years ago
#4
@
7 years ago
This is something we'd be able to sniff for via in the preview. In particular, when wp_nav_menu()
is called and falls back to listing pages, then a selective refresh partial will still be created. So in that case, the partial itself could send a message to the parent window to inform it that a given theme location has a fallback populating it.
#5
@
7 years ago
- Milestone changed from 4.9 to Future Release
- Type changed from task (blessed) to enhancement
Correction: Fallback menus don't yet get selective refresh partials. There is a patch for this in #39665. In that patch there is a echo_preview_nav_menu_args_fallback_with_partial_refresh
method that wraps the original fallback_cb
and calls it. So inside of this function we'd be able to look to see if a theme_location
param is present, and if so, then tally that location similar to how we tally sidebar calls and then export them to JS in the preview, and then it could be sent to the controls window via wp.customize.preview.send( 'nav-menu-locations-with-fallbacks', locations )
which then can be listened to in the controls pane via wp.customize.previewer.bind( 'nav-menu-locations-with-fallbacks', function() { … } )
. This listener can then toggle whether or not the additional text should be displayed.
Nevertheless, this isn't going to land in in 4.9 due to the dependency here on #39665.
How would the Customizer know whether the theme has used a fallback menu or not?
(Is that what is meant by "When your theme creates a menu by default", because themes in the repository aren't supposed to create menus?)