On Maywood (and possibly all template-first themes) a Primary menu is created (e.g. with Home and Blog Feed items) but the location is not assigned, so the menu doesn't appear on the site and users are unaware they'd need to go to Customizer to assign the location.
See the navigational menu active on the site (since it's created)
A menu called Primary is created (with items Home and Blog feed) but it's not assigned to its location

_Link: https://d.pr/i/UlxXbT_
Context / Source
Most recent case: 2673338-zen (Quick Start session)
It seems as though we've _never_ added menus to segment-based site (Business, Blog etc) in the onboarding flow.
The JSON annotations (such as m1.json and m2.json), which headstart uses to create sites, do not define a primary menu
"theme_mods": {
"0": false,
"custom_css_post_id": -1,
"hide_front_page_title": true,
"nav_menu_locations": []
},
I tested this code,
"theme_mods": {
"0": false,
"custom_css_post_id": -1,
"hide_front_page_title": true,
"nav_menu_locations": {
"menu-1": "primary"
}
},
and it adds the menu:

🎉
Maybe @michaeldcain or @ianstewart might know whether this omission was deliberate.
The onboarding project has sunken into the foggy mire of my memory.
iirc, I think it was a roadmap item tied to adding multiple pages like About and Contact to starter sites. It looks a bit weird in that screenshot above to have A Home and a Blog Feed menu item on what I assume is a single page site with only a blog. That said, if we could have a menu set automatically with Home for single-page sites … heavy plus one to that.
2680626-zen Another case of a user where a Primary menu was created but not assigned to its location.
That said, if we could have a menu set automatically with Home for single-page sites … heavy plus one to that.
I was digging around here and saw that we might be able to define primary nav elements in the "menus" property of each headstart JSON file, e.g.,
"menus": {
"primary": {
"name": "Primary",
"items": [
{
"menu-item-title": "Home",
"menu-item-db-id": 4,
"menu-item-object-id": "2",
"menu-item-object": "page",
"menu-item-type": "post_type",
"menu-item-status": "publish",
"menu-item-position": 1,
"menu-item-parent-id": "0",
"menu-item-description": ""
}
]
See the Maywood en.json in the inc folder for a full example.
Just not sure what the following properties relate to:
"menu-item-db-id": 4,
"menu-item-object-id": "2",
Do they have to correspond to IDs in the starter site? @michaeldcain Do you know what these IDs do?
Just to confirm, for onboarding, these changes would have to be added to the JSON files in /lib/nux-helpers/vertical-content/
Today I had a case 2709738-zen with a WordPress.com site that has plugins. It had Maywood Theme for which a Primary Menu was created but not assigned to its location.
We assigned it, added some items and then switched to Exford Theme.
The primary menu became unassigned again which is not the desired behavior and it's confusing. So we had to visit Customizer again and assign it to the location.
Another case with Maywood Theme https://it.forums.wordpress.com/topic/visualizzazione-pagine-preparate/
As described above, I've created a patch to add a Home menu item to Blogs in D39025-code
As described above, I've created a patch to add a Home menu item to Blogs in D39025-code
I can get this in if anyone has time to review and ✅ it
@ramonjd With D39025-code abandoned, can this be closed?
With D39025-code abandoned, can this be closed?
Yep, thanks for the reminder @obenland
It didn't seem important enough to attract many 👀 anyway :)
Most helpful comment
It seems as though we've _never_ added menus to segment-based site (Business, Blog etc) in the onboarding flow.
The JSON annotations (such as
m1.jsonandm2.json), which headstart uses to create sites, do not define a primary menuI tested this code,
and it adds the menu:
🎉
Maybe @michaeldcain or @ianstewart might know whether this omission was deliberate.
The onboarding project has sunken into the foggy mire of my memory.