Stellen Sie das aktive Navigationsmenü von einem Plugin ein

Gibt es eine Möglichkeit, die folgende Option aus einem WordPress-Plugin zu setzen, wenn Sie den Namen des Menüs kennen, das Sie einstellen möchten: Bildbeschreibung hier eingeben

Mein Entwickler sagt, dass es nicht möglich ist, aber ich bin mir sicher, dass ein Guru einen Weg kennt, um dies zu umgehen;)

Solutions Collecting From Web of "Stellen Sie das aktive Navigationsmenü von einem Plugin ein"

Sie können den wp_nav_menu_args Filter ( Codex-Referenz ) verwenden, um einen Themenspeicherort für die Verwendung eines bestimmten Menüs wp_nav_menu_args .

Beispiel:

 function test_wp_nav_menu_args( $args = '' ) { // only set menu for the primary navigation menu. if ( $args['theme_location'] != 'primary' ) { return $args; } // change {main-menu} to be the slug of the menu you want to set. $args['menu'] = 'main-menu'; return $args; } add_filter( 'wp_nav_menu_args', 'test_wp_nav_menu_args' ); 

Sie können get_theme_mod und set_theme_mod , um set_theme_mod für set_theme_mod zu speichern.

Standorte abrufen:

 $locations = get_theme_mod( 'nav_menu_locations' ); var_dump( $locations ); 

Drucke:

 Array ( [primary] => 0 [secondary] => 0 ) 

Erhalten Sie vorhandene Navigationsmenüs:

 $nav_menus = get_terms( 'nav_menu', array( 'hide_empty' => true ) ); var_dump( $nav_menus ); 

Drucke:

 Array ( [0] => stdClass Object ( [term_id] => 2 [name] => Main [slug] => main [term_group] => 0 [term_taxonomy_id] => 2 [taxonomy] => nav_menu [description] => [parent] => 0 [count] => 3 ) } 

Ort festlegen:

 $nav_menu_id = $nav_menus[0]->term_id; $location = 'primary'; $locations[ $location ] = $nav_menu_id; set_theme_mod( 'nav_menu_locations', $locations );