wp_get_nav_menu_items comment exclure des éléments de menu de sous-niveau?
1 réponses
- votes
-
- 2012-01-27
J'ai donc changé ceci:
foreach ( (array) $menu_items as $key => $menu_item ) { $title = $menu_item->title; $url = $menu_item->url; $menu_output .= '<option value="' . $url . '">' . $prefix . $title . '</option>'; }
à ceci:
foreach ( (array) $menu_items as $key => $menu_item ) { if ( $menu_item->menu_item_parent == 0 ) : $title = $menu_item->title; $url = $menu_item->url; $menu_output .= '<option value="' . $url . '">' . $prefix . $title . '</option>'; endif; }
Désormais,ilne tirera que les éléments demenu sans élément demenuparent.
Think I worked it out!!
I did a print_r on each $menu_item and saw there's an array key called menu_item_parent in there.
So I changed this:
foreach ( (array) $menu_items as $key => $menu_item ) { $title = $menu_item->title; $url = $menu_item->url; $menu_output .= '<option value="' . $url . '">' . $prefix . $title . '</option>'; }
to this:
foreach ( (array) $menu_items as $key => $menu_item ) { if ( $menu_item->menu_item_parent == 0 ) : $title = $menu_item->title; $url = $menu_item->url; $menu_output .= '<option value="' . $url . '">' . $prefix . $title . '</option>'; endif; }
Now it will only pull menu items without a menu item parent.
-
Si c'est la solution,marquez-la comme résolue.If this is the solution, mark it solved.
- 0
- 2012-01-27
- mor7ifer
-
Vousne pouvezpasmarquer vospropres réponses comme solutionjusqu'à 2jours après la question,mais vous leferezensuite.You can't mark your own answers as the solution until 2 days after the question was asked but will do it then.
- 1
- 2012-01-27
- Brigante
J'ai lafonction suivantepourgénérer unmenupersonnalisé dans unformat sélectionnépour une conception réactive sur laquelleje travaille.
Celafonctionneexactement commeje le souhaite,sauf quej'auraisbesoin d'exclure les éléments du sous-menu. Pour lemoment,il comprendtous lesniveaux.
Est-ce que quelqu'un sait commentje peux dire à
wp_get_nav_menu_items
d'afficher uniquement les éléments demenu deniveau supérieur s'il vousplaît?