2011-10-29 16 views
0

WordPress> Appearance> Menuオプションを使用してカスタムサイドメニューを作成しました。構造は次のとおりです。WordPressメニュー - サブページを表示しない

About Us 
Our Leadership Team 
    Name #1 
    Name #2 
    Name #3 
Our Staff and Advisory Board 
    Name #1 
    Name #2 
    Name #3 
    Name #4 

メニューは私が望むページに表示されますが、完全に展開されています。私がそれを働かせたいと思う方法:私が「About Us」にいる場合、トップレベルのサブオプションだけが表示されます。

「私たちのリーダーシップチーム」をクリックすると、その下の3つの名前が表示されます。これが理にかなってほしい。

これは私が複数のページからこのメニューを呼び出すために使用していたコードです:

      <?php if(is_page(array(11,354,304,302,297,232,319,317,311,309))) :?> 
           <? wp_nav_menu(array('menu' => 'main-about')); ?> 
          <?php endif;?> 

を任意の助けをいただければ幸いです。

答えて

1

私はちょうどそれは私がタスクを完了し

どのようにサイドバーのメインメニューとサブメニューを持つことがrequredれたウェブサイトは、(それが1の深さとしたメインメニューを持っていることでした仕上げ親項目のみが表示されます)。 「メニュー」をメニューIDに変更してください。

<?php wp_nav_menu(array('container_class' => 'menu', 'theme_location' => 'primary', 'depth' => '1', 'menu' => '3')); ?> 

私がしなければならなかったことは、子供のアイテムを投稿することでした。メニューを作成する代わりに、メニューを動的に生成しなければなりませんでした。したがって、各サブメニューのif文またはswitch文を使用する代わりに、これは私が使用した次のコードです。そして、それはループの外側にある可能性があります。

注:このコードはインターネットから取得され、変更されました。元の著者はわかりません。

<?PHP 
// Get the parent's title (For display purpose) 
$str_parenttitle = get_the_title($post->post_parent); 

// This will display the child items of the parent 
// And if it's a child item, display it's siblings 
if($post->post_parent) 
    $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->post_parent."&echo=0&depth=1&exclude=73"); 
else 
    $children = wp_list_pages("title_li=&sort_column=menu_order&child_of=".$post->ID."&echo=0&depth=1&exclude=73"); 
?> 

そこで私は、これは少なくとも役に立てば幸いメニュー

<?PHP if ($children && is_page()): ?> 
    <ul class="menu"> 
     <li <?php if (is_page() && $post->post_parent) {} else { ?>class="current_page_item"<?php } // Shows the parent item on the sub menu ?>> 
      <a href="<?php echo get_permalink($post->post_parent) ?>"><?php echo $str_parenttitle;?></a> 
     </li> 
     <?php echo $children; ?> 
    </ul> 
<?PHP endif; ?> 

を表示します。

関連する問題