Bedingte Menüs basierend auf Seitentitel

Ich möchte ein separates Menü für eine bestimmte Seite erstellen und anzeigen. Dieses Menü muss sich am primären Speicherort befinden. So hätten Sie beispielsweise auf der Startseite und der Kontaktseite: Startseite | Über uns | Kontakt. Auf der Seite “Über uns” können Sie beispielsweise ein anderes Menü anzeigen: Menü Link 1 | Menüverbindung 2 | Menü link 3. Ich habe versucht, dies ohne Glück zu tun. Ich habe das buchstäblich so lange angeschaut, dass ich nicht mehr weiß, wo ich anfangen soll. 🙁 Ich hoffe, es ist so etwas wie der Code unten .. Wie auch immer, jede Hilfe würde sehr geschätzt werden. Danke

function my_example_menu() { register_nav_menu('example-menu',__( 'Example Menu' )); } add_action( 'init', 'my_example_menu' ); wp_nav_menu( array( 'theme_location' => 'my-example-menu', 'container_class' => 'my-example-menu-class' ) ); function my_display_example_menu() { if (is_page('about-us')) { unregister_nav_menu( 'Primary Navigation' ); register_nav_menu( 'Example Menu' ); } } 

//BEARBEITEN

Übergeordnetes Themennav

    

Solutions Collecting From Web of "Bedingte Menüs basierend auf Seitentitel"

Wie Sie der Dokumentation register_nav_menu dient register_nav_menu zur Registrierung eines Menüs im Menü-Editor. Ihr Code wirkt sich nur auf das Back-End aus. Sie sollten auch eine Schnecke wie den ersten Parameter übergeben. Wenn Sie die Anzeige des Menüs ändern möchten, können Sie einfach eine Bedingung schreiben, die die Parameter von wp_nav_menu ändert . Wie das Folgende:

 // header.php (or similar) wp_nav_menu([ 'menu' => (is_page('about-us') ? 'primary-navigation' ? 'example-menu'), ]); 

Andernfalls könnten Sie auch ein Menü registrieren und den Wert des Parameters theme_location , um das Menü für den Benutzer konfigurierbar zu machen.

Aktualisieren:

Um dies zu erreichen, über einen Filterhaken

 // functions.php add_filter('wp_nav_menu_args', function ($args) { if (is_page('about-us')) { $args['menu'] = 'my-custom-menu'; } return $args; }); 

1 – Kopieren Sie die header.php des übergeordneten Themas in Ihr header.php Thema.

2 – Um benutzerdefinierte Felder zu erstellen, wenn Sie sich nicht mit WP auskennen, schlage ich vor, das Advanced Custom Fields-Plugin zu verwenden .

Lesen Sie die Dokumente auf ihrer Website. Sie möchten ein Auswahl- / Dropdown- oder Radiotyp-Feld erstellen und für alle Post-Typen und Seiten verwenden.

Geben Sie für jedes Menü, das Sie haben, dem benutzerdefinierten Feld einen Wert.

Geben Sie dem benutzerdefinierten Feld einen Standardwert – den für das Menü, das Sie am häufigsten verwenden werden (damit Sie etwas Zeit sparen)

3 – Geben Sie den anderen Seiten / Posts das andere Menü.

4 – Ändern Sie in der header.php Ihres untergeordneten Themas:

 < ?php if('true' == $ubermenu): wp_nav_menu(array( 'theme_location' => 'Primary Navigation' , 'depth' => 0 , 'container' => false , 'walker' => new description_walker() )); else: ?>  < ?php endif; //end uberMenu check ?> 

Zu:

 < ?php $menu_to_use = get_field(get_the_ID(), 'meta_key_of_custom_field'); if('true' == $ubermenu): wp_nav_menu(array( 'theme_location' => $menu_to_use, // make sure that the values of the custom field are the names of the menus (eg Primary Menu) 'depth' => 0 , 'container' => false , 'walker' => new description_walker() )); else: ?>  < ?php endif; //end uberMenu check ?>