Comment obtenir un menu mobile différent du menu de bureau dans le thème des vingt-douze enfants
4 réponses
- votes
-
- 2015-06-08
Comme recommandé dans un article similaire: https://wordpress.stackexchange.com/a/156494/74343
1.) Créez les menus comme vous le souhaitezet nommez-les comme vous le souhaitez,comme unexemple "menu-mobile "et "menu-bureau ".
2.) Dans votre thèmeenfant dans le header.php,vouspouvezbasculeren fonction du wp_is_mobile () drapeau comme ceci:
if ( wp_is_mobile() ) { wp_nav_menu( array( 'menu' => 'mobile-menu' ) ); } else { wp_nav_menu( array( 'menu' => 'desktop-menu' ) ); }
Cependant j'ai utilisé leplugin "WP Responsive Menu",quim'a égalementpermis de sélectionner unmenupourmobile. Dans la configuration du "WP Responsive Menu",ilfaut sélectionner l'élément à NE PAS afficher surmobile,qui dans le cas duthème vingt-douzeest: "# site-navigation".
Bon codage!
As recommended in a similar post: https://wordpress.stackexchange.com/a/156494/74343
1.) Create the menus as you want them, and name them as you like, as an example "mobile-menu" and "desktop-menu".
2.) In your child theme in the header.php you could switch according to the wp_is_mobile() flag like this:
if ( wp_is_mobile() ) { wp_nav_menu( array( 'menu' => 'mobile-menu' ) ); } else { wp_nav_menu( array( 'menu' => 'desktop-menu' ) ); }
However I used the "WP Responsive Menu" plugin, which allowed me to select a menu for mobile as well. In the configuration of the "WP Responsive Menu" one needs to select the element NOT to show on mobile, which in the case of the twenty twelve theme is: "#site-navigation".
Happy coding!
-
- 2018-02-23
Si quelqu'un regardeencore cefil,je me débattais avec ça depuis unmoment,aucun de cesproblèmesn'afonctionné ... Jepourrais lefaire avec CSS!
Engros,créez unmenugéant avectous les éléments souhaités surmobileet ordinateur debureau.Ensuite,ajoutez les classes: "hide-mobile"et "hide-desktop" sur leurs éléments demenu respectifs.
Utilisez ce CSS:
@media (min-width: 980px){ .hide-desktop{ display: none !important; } } @media (max-width: 980px){ .hide-mobile{ display: none !important; } }
If anyone is still watching this thread, I had been struggling with this for a while, none of these worked... I could do it with CSS!
Basically, create one giant menu with all the items you want on mobile and desktop. Then, add classes: "hide-mobile" and "hide-desktop" on their respective menu items.
Use this CSS:
@media (min-width: 980px){ .hide-desktop{ display: none !important; } } @media (max-width: 980px){ .hide-mobile{ display: none !important; } }
-
- 2018-08-04
Enplus du commentaire Jordans,ilestimportant de savoir comment ajouter une classe à un élément demenu dans Wordpress:
Pour ajouter des classes CSS à unmenu WordPress,allez d'abord dans Apparence> Menus dans votrethème WordPress.Ensuite,recherchez l'onglet Options d'écranen haut à droite de l'écran.Cliquezpour ouvrir lepanneauet cochez la case Classes CSS.Sélectionnez lemenu que vous souhaitezmodifier,puis cliquez sur le lien auquel vous souhaitez ajouter une classe CSS.
In addition to Jordans comment, it is important to know how to add a class to a menu item in Wordpress:
To add CSS classes to a WordPress menu, first go to Appearance > Menus in your WordPress theme. Next, find the Screen Options tab at the top right of the screen. Click to open the panel, and check the box labelled CSS Classes. Select the menu you want to edit, and click the link you want to add a CSS class to.
-
- 2019-09-06
Une autre approche quin'impliquepas de remplacer lesfichiers/modèles dethème:
Dans le
functions.php
duthèmeenfant,ajoutez:/** * Register the 'mobile' menu location with WordPress so it can be configured in the admin UI. */ register_nav_menus( array( 'mobile' => 'Mobile Replace Primary', ) ); /** * When building menus, if the menu location 'primary' is being used, and we're on mobile, * swap it out for the menu location '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; } );
Ensuite,configurez votremenumobile dans
wp-admin
/Appearance
/Menus
.Another approach which doesn't involve overriding theme files/templates:
In the child theme's
functions.php
add:/** * Register the 'mobile' menu location with WordPress so it can be configured in the admin UI. */ register_nav_menus( array( 'mobile' => 'Mobile Replace Primary', ) ); /** * When building menus, if the menu location 'primary' is being used, and we're on mobile, * swap it out for the menu location '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; } );
Then configure your mobile menu in
wp-admin
/Appearance
/Menus
.
Je souhaite utiliser unmenu différentpourmon site Webmobile que celui demon site Webpour ordinateur. Avec différentje veux dire le contenupas lamiseen page. Je veuxjuste utiliser lemenumobile duthème des vingt-douze.
Ce quej'aifaitjusqu'àprésent:
Dansmonenfantfunctions.php,j'ai ajouté le code suivant:
Je suismaintenant capable de créer deuxmenus dansmontableau debord. (tableau debord>menu> localisations)
Dans le header.php,je ne saispasexactement quoi changer,doncmonmenumobileest chargé au lieu demonmenuprincipal.
J'aiessayé de changer le
<?php _e( 'Menu', 'twentytwelve' ); ?>
à<?php _e( 'Menu', 'mobile' ); ?>
,mais celan'apasmodifié le contenu dumenu demonmenumobile.Jene suispastrèsfamilier avec ce code,doncj'espère que quelqu'unpourrame diriger dans labonne direction.
Mercipour votre aide!