2012-04-27 63 views
5

Estoy trabajando en un tema wp para un sitio que ya está construido en wp, y que tiene un menú muy grande que se divide en dos menús en wp admin.¿Cómo combinar dos menús administrados por separado en WordPress para mostrar como uno en el tema del front-end?

Quiero fusionar este dos menú en tema en UL único. Actualmente genera dos menús en diferentes contenedores div y ul li, y está rompiendo los estilos & js aplicados en él.

¿Cómo puedo fusionar estos dos menús en un único li li en un solo contenedor?

Respuesta

13

bien, así que si usted está utilizando el wp_nav_menu()

trate de usar algo como

<ul id="MyMenu"> 
    <?php wp_nav_menu(array('menu' => 'FirstMenu', 'items_wrap' => '%3$s')); ?> 
    <?php wp_nav_menu(array('menu' => 'SecondMenu', 'items_wrap' => '%3$s')); ?> 
</ul> 

utilizando el items_wrap eliminará la ul de cada menú, así encapsular el menú en un ul ya definido etiqueta, el wp_nav_menu escupirá solo etiquetas li.

consulte Extracción de la envoltura ul: http://codex.wordpress.org/Function_Reference/wp_nav_menu

M

+0

Ya lo he intentado, pero parece que no funciona. Estoy usando el tema roots. – Krunal

+0

puede publicar el uso del código para generar el wp_nav_menu? ie: register_nav_menus (array ('FirstMenu' => 'Menú1', 'SecondMenu' => 'Menú2')); y también publique el código que está tratando de usar. Sé que este método funcionará, actualmente lo estoy usando en otro sitio. – Marty

+0

esto parece ser una respuesta, pero no funciona con el tema roots, puede ser que algo esté mal con el tema o código personalizado que hemos hecho. Necesito verificarlo. – Krunal

9

El problema es que cada wp_nav_menu todavía se está envuelto en individuales del div. Es necesario apagar los divs, así, añadiendo " 'contenedor' => false" a cada uno, así:

<ul id="MyMenu"> 
    <?php wp_nav_menu(array('menu' => 'FirstMenu', 'items_wrap' => '%3$s', 'container' => false)); ?> 
    <?php wp_nav_menu(array('menu' => 'SecondMenu', 'items_wrap' => '%3$s', 'container' => false)); ?> 
</ul> 
0

puede combinarlos con este método. Mantiene algunas de las clases de menú generadas por WP.

// two WordPress menus combined into one. 
// first menu. 
$menu = wp_nav_menu(array(
    'theme_location'=> 'secondary', // or whatever location 
    'fallback_cb' => false, 
    'container'  => '', 
    'items_wrap' => '%3$s', 
    'echo' => false 
)); 
// include all of the menu items from the first inside the second menu. 
wp_nav_menu(array(
    'theme_location' => 'primary', // or whatever location 
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s ' . $menu . '</ul>', 
)); 
Cuestiones relacionadas