It turns out the fault was all mine.
I was attaching a callback function to the wp_nav_menu_items hook that returned empty if it wasn’t the main menu… This was it:
// Add logo in main menu
add_filter( 'wp_nav_menu_items', 'add_logo_in_main_menu', 10, 2 );
function add_logo_in_main_menu( $items, $menu ){
/*
Append logo to main menu
*/
if(is_admin() || 'primary_navigation' !== $menu->theme_location){
return; //<!--- in this case, returns nothing
}
return '<li class="c-logo--medium"><img src="'.get_stylesheet_directory_uri().'/assets/images/logo-pm.jpg" alt=""></li>'. $items;
}
The fix was easy:
function add_logo_in_main_menu( $items, $menu ){
/*
Append logo to main menu
*/
if(is_admin() || 'primary_navigation' !== $menu->theme_location){
return $items;
}
return '<li class="c-logo--medium"><img src="'.get_stylesheet_directory_uri().'/assets/images/logo-pm.jpg" alt=""></li>'. $items;
}
Sorry for the noise.