Zeige verschiedene Menüs in theme_location in Abhängigkeit von x

Ich würde gerne ein anderes Menü in der gleichen theme_location abhängig von einer Bedingung anzeigen. Ich frage mich, ob das möglich ist und wenn ja wie?

Ich möchte vermeiden, einen zusätzlichen theme_location zu registrieren, da es eigentlich nur am selben Ort platziert würde und zwei Orte an der gleichen Stelle den Benutzer verwirren könnten.

Ich habe versucht, ein anderes Menü in der ersten if-statement zu benennen, aber ich habe gerade das gleiche Menü wie im else.

Mein Code:

 'Primary Menu', 'theme_location' => 'primary' ) ); } ?> 

Muss ich zwei theme_locations registrieren oder ist das mit einem möglich?

Solutions Collecting From Web of "Zeige verschiedene Menüs in theme_location in Abhängigkeit von x"

Ok, ich habe es geschafft, das zu beheben. Veröffentlichen Sie hier die Antwort für alle Interessierten.

Ich habe nicht ganz verstanden, dass register_nav_menus nur Menüpunkte registriert. Dies ist der Code, den ich verwendet habe, der bedingt benannte Menüs am selben Ort verwendet. Damit dies funktioniert, müssen Sie den genauen Namen verwenden, der beim Erstellen der Menüs angegeben wurde. Oder erstellen Sie sie programmgesteuert, um sicherzustellen, dass sie immer vorhanden sind und korrekt benannt sind.

 < ?php if ( preg_match ('#^/company/#', $_SERVER['REQUEST_URI']) ) { wp_nav_menu( array( 'menu' => 'company-primary', 'theme_location' => 'primary', 'fallback_cb'=> false ) ); } else { wp_nav_menu( array( 'menu' => 'private-primary', 'theme_location' => 'primary', 'fallback_cb'=> false ) ); } ?> 

Ich habe diesen Code verwendet, um einige Standardmenüs einzurichten:

 // Set up default menus $private_menu_exists = wp_get_nav_menu_object( 'private-primary' ); if( !$private_menu_exists){ $menu_id = wp_create_nav_menu( 'private-primary' ); } $company_menu_exists = wp_get_nav_menu_object( 'company-primary' ); if( !$company_menu_exists){ $menu_id = wp_create_nav_menu( 'company-primary' ); }