@bcworkz thank you very much for the answer!
It’s 2:30AM and I finally got to the root of the issue :)))
There was a conflict with the function in child’s functions.php that inserts a standard html5 search form into primary menu:
function tinyframeworkfullwidth_add_search_to_wp_menu ( $items, $args ) {
if( 'primary' === $args -> theme_location ) {
return $items . '<li class="menu-item menu-item-search">' . get_search_form(false) . '</li>';
}
}
add_filter( 'wp_nav_menu_items','tinyframeworkfullwidth_add_search_to_wp_menu',10,2 );
I’m still puzzled why it causes a conflict, because when I was using hard-coded html4 search form it didn’t interfere with secondary menu. And IF clearly checks only for the primary menu, right?:
function tinyforgeiichild_add_search_to_wp_menu ( $items, $args ) {
if( 'primary' === $args -> theme_location ) {
$items .= '<li class="menu-item menu-item-search">';
$items .= '<form role="search" method="get" class="searchform" action="' . home_url( '/' ) . '"><label><span class="screen-reader-text">Search for:</span></label>';
$items .= '<input class="text_input" type="search" value="" name="s" id="s" placeholder="Search …" title="Search for:" /><input type="submit" class="searchsubmit" value="Search" /></form>';
$items .= '</li>';
}
return $items;
}
add_filter( 'wp_nav_menu_items','tinyforgeiichild_add_search_to_wp_menu',10,2 );
Edit. I modified new function a bit and now everything works! ??
But still, I don’t know why it interferes with secondary nav…
function tinyframeworkchild_add_search_to_wp_menu ( $items, $args ) {
if( 'primary' === $args -> theme_location ) {
$items .= '<li class="menu-item menu-item-search">' . get_search_form(false) . '</li>';
}
return $items;
}
add_filter( 'wp_nav_menu_items','tinyframeworkchild_add_search_to_wp_menu',10,2 );