2016-04-12 24 views
0

Ich möchte ein Menü nur auf einer bestimmten Seite -> "Portfolio" sichtbar machen, und beim Browsen auf anderen Seiten sollte das "Primary" -Menü sichtbar sein. Auf der "Portfolio" -Seite sollte das "Primary" -Menü ausgeblendet sein.Wordpress: Show-Menü nur auf einer bestimmten Seite

Das ist, was ich habe, aber es funktioniert nicht: Es gibt mir ein HTTP-Fehler 500.

<?php if (is_page('Portfolio')) : ?> 
     <nav id="site-navigation" class="main-navigation" role="navigation"> 
      <?php wp_nav_menu(array('theme_location' => 'portfolio', 'menu_id' => 'portfolio-menu')); ?> 
     </nav> 
<?php endif; ?> 

<?php else : ?> 
     <nav id="site-navigation" class="main-navigation" role="navigation"> 
      <?php wp_nav_menu(array('theme_location' => 'primary', 'menu_id' => 'primary-menu')); ?> 
     </nav> 
<?php endif; ?> 

Antwort

0

entfernen Versuchen Sie dies ...

<?php 
global $post; 
$post_title = isset($post->post_title) ? $post->post_title : null; 
?> 

<?php if ($post_title == 'Portfolio') : ?> 
     <nav id="site-navigation" class="main-navigation" role="navigation"> 
      <?php wp_nav_menu(array('theme_location' => 'portfolio', 'menu_id' => 'portfolio-menu')); ?> 
     </nav> 
<?php else : ?> 
     <nav id="site-navigation" class="main-navigation" role="navigation"> 
      <?php wp_nav_menu(array('theme_location' => 'primary', 'menu_id' => 'primary-menu')); ?> 
     </nav> 
<?php endif; ?> 
+0

Leider funktioniert das nicht. Ich denke, es ist besser, die IF so zu machen: ''. Das "Portfolio" -Menü ist dabei auf ** allen ** Seiten sichtbar, das "Primär" -Menü ist jedoch ausgeblendet. Funktioniert immer noch nicht wie es sollte. – Musa

+0

Sind Sie sicher, dass beide Menüs vorhanden sind - wenn Sie nur das primäre Menü ausgeben, wird es so angezeigt, wie es sollte? Dieser Code funktioniert gut für mich (wenn ich zwei meiner eigenen Menüs verwende) –

+1

Es scheint, als ob Wordpress den Portfolio-Titel aus irgendeinem Grund nicht kannte. Ich habe es geschafft, indem ich den Slug in 'Portfolio-Test' ändere und dann einen IF: (is_page ('Portfolio-Test')) mache. Das funktioniert. Danke für deine Zeit, Simon. – Musa

0

Wenn Sie eine „ELSE“ verwenden, dann die

<?php endif; ?> 
+0

Beim Entfernen der vor dem "ELSE" ist nur das "Primary" -Menü auf allen Seiten sichtbar. Das "Portfolio" -Menü ist nicht sichtbar. Vielen Dank. – Musa

+0

Dann versuchen Sie bitte Pollards Antwort, es scheint eine gute Passform zu sein. –

Verwandte Themen