Cum să obții un meniu mobil diferit față de meniul desktop în tema copil twentytwelve
Aș dori să folosesc un meniu diferit pentru site-ul mobil față de cel pentru desktop. Prin diferit mă refer la conținut, nu la aspect. Vreau doar să folosesc meniul mobil al temei twentytwelve.
Ce am făcut până acum:
În fișierul functions.php al temei copil am adăugat următorul cod:
register_nav_menus( array(
'primary' => __( 'Navigare Principală', 'twentytwelve' ),
'mobile' => __( 'Navigare Mobilă', 'mobile'),
) );
Acum pot crea două meniuri în panoul de administrare. (dashboard>meniu>locații)
În header.php nu știu exact ce să modific pentru ca meniul mobil să fie încărcat în locul meniului principal.
<nav id="site-navigation" class="main-navigation" role="navigation">
<button class="menu-toggle"><?php _e( 'Meniu', 'twentytwelve' ); ?></button>
<a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Sari la conținut', 'twentytwelve' ); ?>"><?php _e( 'Sari la conținut', 'twentytwelve' ); ?></a>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
</nav><!-- #site-navigation -->
Am încercat să schimb <?php _e( 'Meniu', 'twentytwelve' ); ?>
în <?php _e( 'Meniu', 'mobile' ); ?>
, dar acest lucru nu a schimbat conținutul meniului în meniul meu mobil.
Nu sunt foarte familiarizat cu acest cod, așa că sper că cineva mă poate îndruma în direcția corectă.
Mulțumesc pentru ajutor!

După cum este recomandat într-un post similar: https://wordpress.stackexchange.com/a/156494/74343
1.) Creează meniurile așa cum dorești și denumește-le după preferință, de exemplu "meniu-mobil" și "meniu-desktop".
2.) În tema ta child, în fișierul header.php, poți comuta între meniuri în funcție de flag-ul wp_is_mobile() astfel:
if ( wp_is_mobile() ) {
wp_nav_menu( array( 'menu' => 'meniu-mobil' ) );
} else {
wp_nav_menu( array( 'menu' => 'meniu-desktop' ) );
}
Totuși, eu am folosit plugin-ul "WP Responsive Menu", care mi-a permis să selectez un meniu și pentru versiunea mobilă. În configurația "WP Responsive Menu" trebuie selectat elementul care NU trebuie afișat pe mobil, care în cazul temei twenty twelve este: "#site-navigation".
Codare plăcută!

Dacă cineva mai urmărește acest thread, eu m-am luptat cu asta ceva timp, niciuna dintre aceste soluții nu a funcționat... Am reușit să o rezolv cu CSS!
Practic, creează un meniu mare care să conțină toate elementele pe care le dorești atât pe mobil cât și pe desktop. Apoi, adaugă clasele: "hide-mobile" și "hide-desktop" pe elementele respective din meniu.
Folosește acest CSS:
@media (min-width: 980px){
.hide-desktop{
display: none !important;
}
}
@media (max-width: 980px){
.hide-mobile{
display: none !important;
}
}

În plus față de comentariul lui Jordan, este important să știi cum să adaugi o clasă la un element de meniu în WordPress:
Pentru a adăuga clase CSS la un meniu WordPress, mai întâi mergi la Aspect > Meniuri în tema ta WordPress. Apoi, găsește fila Opțiuni Ecran în partea dreaptă sus a ecranului. Apasă pentru a deschide panoul și bifează caseta numită Clase CSS. Selectează meniul pe care dorești să-l editezi și apasă pe linkul căruia vrei să-i adaugi o clasă CSS.

O altă abordare care nu implică suprascrierea fișierelor/șabloanelor de temă:
În fișierul functions.php
al temei child adăugați:
/**
* Înregistrează locația de meniu 'mobile' în WordPress pentru a putea fi configurată în interfața de administrare.
*/
register_nav_menus( array(
'mobile' => 'Mobile Replace Primary',
) );
/**
* La construirea meniurilor, dacă se utilizează locația 'primary' și suntem pe dispozitiv mobil,
* se va înlocui cu locația de meniu 'mobile'.
*
* @see wp_nav_menu()
*/
add_filter( 'wp_nav_menu_args', function( $args ) {
if( 'primary' === $args['theme_location'] && wp_is_mobile() ) {
$args['theme_location'] = 'mobile';
}
return $args;
} );
Apoi configurați meniul mobil în wp-admin
/ Aspect
/ Meniuri
.
