2016-04-12 17 views
0

特定のページでのみメニューを表示したい場合は - > "ポートフォリオ"、他のページでは "プライマリ"メニューを表示する必要があります。 「ポートフォリオ」ページで「プライマリ」メニューを非表示にする必要があります。Wordpress:特定のページにのみメニューを表示

これは私が持っているものですが、それは動作しません:それは私にHTTPエラーを与える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; ?> 

答えて

0

を削除します試してみてください...

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

残念ながらそれは動作しません。 IFを次のようにする方が良いと思います: '<?php if(!is_page_template( 'content-portfolio-toolkit.php')):?>'これを行うと、** Port **メニューがすべての**ページに表示されますが、「プライマリ」メニューは表示されません。まだそれはthoする必要がありますように動作しません。 – Musa

+0

両方のメニューが存在していることは確かですか?プライマリメニューを出力しただけの場合は表示されます。そのコードは私のためにうまくいく(私自身のメニューの2つを使うとき) –

+1

Wordpressが何らかの理由でPortfolio-titleを知らなかったようだ。私はそれを 'ポートフォリオテスト'に変更してからIF:(is_page( 'portfolio-test'))を実行することでそれを得ました。これは機能します。あなたの時間をありがとう、サイモン。 – Musa

0

あなたが「ELSE」を使用している場合

<?php endif; ?> 
+0

<?php endifを削除すると、 ?> "ELSE"の前には、 "Primary"メニューのみがすべてのページに表示されます。 「ポートフォリオ」メニューは表示されません。ありがとう。 – Musa

+0

それからポーラードの答えを試してください、それは良いフィット感があるようです。 –

関連する問題