La suppression du conteneur de wp_nav_menu ne fonctionne pas
-
-
Qu'entendez-vouspar _sije n'utilisepas demenupersonnalisé_?Pourriez-vous s'il vousplaît décrireplus clairement dans quelles conditions vous obtenez le résultat souhaitéet quandnon?What do you mean by _if i don't use a custom menu_ ? Could you please describe more clearly under which conditions you get desired result and when not?
- 0
- 2010-11-08
- Rarst
-
Monthèmeprenden charge lesmenuspersonnalisés. Sij'utilise unmenupersonnalisé,le 'container'=>falsefonctionnebien,mais sinon celane fonctionnepas. Sij'utilise 'container'=> '' sepasse lamême chose.My theme supports custom menus. If i use a custom menu the 'container'=>false works fine, but if not it doesn't works. If i use 'container'=>'' happens the same.
- 0
- 2010-11-09
- Oterox
-
6 réponses
- votes
-
- 2011-04-25
[RÉSOLU] CELA NE FONCTIONNE PAS lorsque vousfaites référence à unemplacementinexistant.parexemple.lorsque vous avez copié le code ailleurs,ou que vousn'avezpasencore créé votremenu ou votreemplacement dans letableau debord.
parexempleremove ",'theme_location'=> 'primary'" du code suivant:
wp_nav_menu( array( 'container'=> false, 'menu_class'=> false, 'menu_id'=> 'ia_toplevel', 'theme_location' => 'primary' ) );
donc çane devraitpas ressembler à
wp_nav_menu( array( 'container'=> false, 'menu_class'=> false, 'menu_id'=> 'ia_toplevel' ) );
Celafonctionnebien SANS conteneur dansmon site Web SocialBlogsiteWebDesign.com
[SOLVED] IT DOES NOT WORK when you are referring to an inexisting location. e.g. when you copied the code from somewhere else, or you haven't created your menu or location yet in the dasboard.
e.g. remove ", 'theme_location' => 'primary'" from the following code:
wp_nav_menu( array( 'container'=> false, 'menu_class'=> false, 'menu_id'=> 'ia_toplevel', 'theme_location' => 'primary' ) );
so it shoult look like
wp_nav_menu( array( 'container'=> false, 'menu_class'=> false, 'menu_id'=> 'ia_toplevel' ) );
It works fine WITHOUT container in my website SocialBlogsiteWebDesign.com
-
Celane semblepasfonctionner dans wordpress 3.9It seems not work in wordpress 3.9
- 0
- 2014-04-22
- tepkenvannkorn
-
Créez d'abord votremenu dans l'admin dans `apparence->menu`puis appelez le` wp_nav_menu (array ('menu'=> '
','container'=>false)) ` Create your menu in the admin in `appearance->menu` first then call the `wp_nav_menu(array('menu'=>'','container'=>false))` - 0
- 2014-05-11
- Warface
-
Ehbien,c'est un comportement assez étrange:/Jepense que c'est unproblème qui devrait être suivi.Well, that's a pretty odd behavior :/ I think this is an issue that should be tracked.
- 0
- 2020-05-26
- enguerranws
-
- 2010-11-08
Try: <?php wp_nav_menu( array( 'container' => '' ) ); ?>
Try: <?php wp_nav_menu( array( 'container' => '' ) ); ?>
-
Ilest vérifié comme `if ($ args-> container)` dans le code afin que `false` ou`empty string`ne fasse aucune différence.It is checked as `if ( $args->container )` in code so `false` or `empty string` doesn't make a difference.
- 1
- 2010-11-08
- Rarst
-
Rarement,je viens de letester avec un site sur lequelj'aitravaillé récemment,et le réglage de 'container'=> '' afonctionné.Jepense que cen'estpas untest de valeur,maisplutôt une valeurnulleet doncpas de sortie de données.Rarst, I just tested it with a site I've been working on lately, and setting 'container' => '' did actually work. I think it's not testing for value, but more setting to null and thus not outputting data.
- 0
- 2010-11-08
- tw2113
-
'container'=> ''ne fonctionnepaspourmoi. J'utilise wp 3.0.1'container' => '' doesn't work for me. I'm using wp 3.0.1
- 0
- 2010-11-09
- Oterox
-
nefonctionnepaspourmoi aussi ... avec wp 3.2.1doesnt work for me too ... with wp 3.2.1
- 0
- 2011-12-01
- papachan
-
- 2010-12-23
vousfaites référence à lafonction de secours desnav_menus. C'est "wp_page_menu"et malheureusement,celane produitpas lemêmetype debalisage qu'unmenupersonnalisé.
Pour résoudre ceproblème,créez votrepropremenu de secours. J'utilise ceci:
function my_page_menu($args){ $menu = ''; $args['echo'] = false; $args['title_li'] = ''; // If the front page is a page, add it to the exclude list if (get_option('show_on_front') == 'page') $args['exclude'] = get_option('page_on_front'); $menu .= str_replace(array("\r", "\n", "\t"), '', wp_list_pages($args)); if($menu): if($args['container']) $menu = '<'.$args['container'].' class="'.$args['container_class'].'">'.$menu; $menu .= '<ul class="'.$args['menu_class'].'">'.$menu; // add 'home' menu item $menu .= '<li class="home '.((is_front_page() && !is_paged()) ? 'current-menu-item' : null).'"><a href="'.home_url('/').'" title="'.__("Home Page").'">'.$args['link_before'].__("Home").$args['link_after'].'</a></li>'; $menu .= '</ul>'; if($args['container']) $menu .= '</'.$args['container'].'>\n"'; $menu = apply_filters('wp_page_menu', $menu, $args); endif; echo $menu; }
Vous devrezpeut-être changer cela carmonthèmegère lesmenus à samanière,maisje pense que vous avez l'idée debase.
Et lorsque vous appelez
wp_nav_menu
,faites-le commewp_nav_menu(array('fallback_cb' => 'my_page_menu'));
Vouspouvez égalementfaire correspondre les classes à celles d'unmenupersonnaliséen utilisant ceci:
add_filter('page_css_class', 'atom_page_css_classes', 420, 2); function atom_page_css_classes($classes, $page){ // overwrite and use page (safe) name instead of ID; nobody styles IDs... $new_classes = array('page-'.$page->post_name); // adjust active menu classes to match the ones added by wp_nav_menu() foreach($classes as $class) if($class == 'current_page_item') $new_classes[] = 'current-menu-item'; elseif($class == 'current_page_parent') $new_classes[] = 'current-menu-parent'; elseif($class == 'current_page_ancestor') $new_classes[] = 'current-menu-ancestor'; return $new_classes; }
De cettefaçon,vous réduisez quelques règles CSS ...
you are referring to the fallback function of the nav_menus. This is "wp_page_menu" and unfortunatelly it doesn't produce the same type of markup that a custom menu does.
To fix this create your own fallback menu. I'm using this:
function my_page_menu($args){ $menu = ''; $args['echo'] = false; $args['title_li'] = ''; // If the front page is a page, add it to the exclude list if (get_option('show_on_front') == 'page') $args['exclude'] = get_option('page_on_front'); $menu .= str_replace(array("\r", "\n", "\t"), '', wp_list_pages($args)); if($menu): if($args['container']) $menu = '<'.$args['container'].' class="'.$args['container_class'].'">'.$menu; $menu .= '<ul class="'.$args['menu_class'].'">'.$menu; // add 'home' menu item $menu .= '<li class="home '.((is_front_page() && !is_paged()) ? 'current-menu-item' : null).'"><a href="'.home_url('/').'" title="'.__("Home Page").'">'.$args['link_before'].__("Home").$args['link_after'].'</a></li>'; $menu .= '</ul>'; if($args['container']) $menu .= '</'.$args['container'].'>\n"'; $menu = apply_filters('wp_page_menu', $menu, $args); endif; echo $menu; }
You might need to change this as my theme handles menus its own way, but I think you get the basic idea.
And when you're calling
wp_nav_menu
do it likewp_nav_menu(array('fallback_cb' => 'my_page_menu'));
You can also match the classes to the ones of a custom menu using this:
add_filter('page_css_class', 'atom_page_css_classes', 420, 2); function atom_page_css_classes($classes, $page){ // overwrite and use page (safe) name instead of ID; nobody styles IDs... $new_classes = array('page-'.$page->post_name); // adjust active menu classes to match the ones added by wp_nav_menu() foreach($classes as $class) if($class == 'current_page_item') $new_classes[] = 'current-menu-item'; elseif($class == 'current_page_parent') $new_classes[] = 'current-menu-parent'; elseif($class == 'current_page_ancestor') $new_classes[] = 'current-menu-ancestor'; return $new_classes; }
This way you cut down a few CSS rules...
-
- 2012-06-12
J'ai développé une solution simpleet efficace utilisant
str_replace
,quipeut être appliquée séparémentpour une utilisation dans lestableaux demenuplutôt queul li
:$menu = wp_nav_menu( array( 'theme_location' => 'main-menu', 'container_id' => 'mainMenu', 'container_class' => 'ddsmoothmenu', 'echo' => FALSE )); $menu = str_replace( array('ul id="main-menu" class="menu">','/ul>','li','/li>'), array('table id="main-menu" class="menu">tr>','/tr>/table>','td','/td>'), $menu ); echo $menu;
I developed a simple and efficient solution using
str_replace
, which can be applied separately for use in menu tables rather thanul li
:$menu = wp_nav_menu( array( 'theme_location' => 'main-menu', 'container_id' => 'mainMenu', 'container_class' => 'ddsmoothmenu', 'echo' => FALSE )); $menu = str_replace( array('ul id="main-menu" class="menu">','/ul>','li','/li>'), array('table id="main-menu" class="menu">tr>','/tr>/table>','td','/td>'), $menu ); echo $menu;
-
- 2020-01-07
J'aitrouvé la solution.
Utilisez simplement "ul"pour "conteneur"
wp_nav_menu(array( 'menu'=>'mainmenu' , 'container' => 'ul', 'menu_class'=> '', 'link_before' => '<span>', 'link_after' => '</span>', 'theme_location' => 'primary') );
Found the solution.
Simply use "ul" for 'container'
wp_nav_menu(array( 'menu'=>'mainmenu' , 'container' => 'ul', 'menu_class'=> '', 'link_before' => '<span>', 'link_after' => '</span>', 'theme_location' => 'primary') );
-
Je convertis cemenu htmlen wordpress:
J'utilise:
mais le code HTML quej'obtiensest:
Sij'utilise unmenupersonnalisé,j'obtiens:
mais sije n'utilisepas demenupersonnalisé 'container'=>falsene fonctionnepas Une solution?