2012-04-27 3 views
5

Ich arbeite an einem WP-Thema für eine Website, die bereits auf WP gebaut wurde, und mit sehr großen Menü, das in zwei Menü in WP-Admin unterteilt ist.Wie zwei Menüs zusammengeführt werden, die separat in WordPress verwaltet werden, um sie im Frontend-Design anzuzeigen?

Ich möchte diese beiden Menü in Thema in einzelnen UL zusammenführen. Momentan erzeugt es zwei Menüs in verschiedenen Div-Containern und ul li und bricht die Stile & js, die darauf angewendet werden.

Wie kann ich diese zwei Menü in einzelne ul li in einzelnen Container zusammenführen?

Antwort

13

ok, wenn Sie also die wp_nav_menu verwenden()

versuchen so etwas wie

<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> 

mit der items_wrap mit dem ul aus jedem Menü entfernen, so kapselt das Menü in einem bereits definierten ul Das wp_nav_menu spuckt nur li-Tags aus.

Siehe ul Wrap ausbauen: http://codex.wordpress.org/Function_Reference/wp_nav_menu

M

+0

Ich habe das schon versucht, aber das scheint nicht zu funktionieren. Ich benutze roots theme. – Krunal

+0

können Sie die Codeverwendung veröffentlichen, um das wp_nav_menu zu generieren? zB: register_nav_menus (array ('FirstMenu' => 'Menu1', 'SecondMenu' => 'Menu2')); und posten Sie auch den Code, den Sie verwenden möchten. Ich weiß, dass diese Methode funktioniert, ich verwende es derzeit auf einer anderen Website. – Marty

+0

Dies scheint eine Antwort zu sein, aber nicht mit dem Thema roots arbeiten, kann etwas mit dem Thema oder benutzerdefinierten Code, den wir getan haben falsch sein. Müssen Sie es überprüfen. – Krunal

9

Das Problem ist, dass jeder wp_nav_menu noch in einzelnen divs eingewickelt wird. Sie müssen auch diese divs auszuschalten, durch Zugabe von „‚Container‘=> false“ zu jedem, etwa so:

<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

Sie sie mit dieser Methode kombinieren. Es behält einige der von WP erzeugten Menü-Klassen bei.

// 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>', 
));