2013-02-23 170 views
2

是否可以根據菜單中是否存在當前頁面來有條件地顯示菜單?如果當前頁面在菜單中,僅顯示菜單

+0

檢查[this](http://wordpress.org/extend/plugins/menu-items-visibility-control/)或[this](http://wpmu.org/how-to-add-conditional-菜單到的wordpress /)。 – 2013-02-23 21:39:46

回答

4

您可以使用下面的代碼。遍歷每個菜單中的每個項目,並檢查項目是否存在。如果是,則顯示菜單並轉到下一個菜單。

<?php 
    // get array of nav menus 
    $menus = wp_get_nav_menus(); 

    //get current page URL 
    $uri = $_SERVER['REQUEST_URI']; 

    //loop through each menu looking for current page 
    foreach($menus as $menu) 
    { 
     //get menu items from ith menu in loop 
     $items = wp_get_nav_menu_items($menu->term_id); 

     //loop through each item in menu to check for 
     foreach($items as $item) 
     { 
      if(strpos($item->url, $uri) !== false) 
      { 
       //display menu 
       wp_nav_menu(array('menu'=>$menu->term_id)); 

       //current menu done, check next menu 
       break; 
      } 
     } 
    } 
    ?> 

所有相關的Wordpress函數的用法可以在代碼中找到,或通過Google搜索。

+0

'if(strcmp($ item-> url,$ uri)== 0)'似乎效果更好! – testing 2014-02-17 00:44:31

相關問題