2015-04-30 129 views
0

當我嘗試添加一個新的菜單模板文件,一個新的div會自動來,我不知道這是怎麼來的。現在我想要沒有這個div。WordPress的wp_nav_menu來臨額外div標籤

HTML:

<nav class="clear-after" id="header-menu"> 
      <!-- __toggle --> 
      <div id="main-menu-toggle"></div> 
      <!-- __level 1 --> 
      <div class="menu"> 
    <ul> 
    <li class="page_item page-item-22"><a href="http://localhost/one2one/index.php/blog/">Blog</a></li> 
<li class="page_item page-item-8 page_item_has_children"><a href="http://localhost/one2one/index.php/company/">Company</a></li> 
<li class="page_item page-item-20"><a href="http://localhost/one2one/index.php/contact/">Contact</a></li> 
<li class="page_item page-item-6 current_page_item"><a href="http://localhost/one2one/">Home</a></li> 
<li class="page_item page-item-18"><a href="http://localhost/one2one/index.php/services/">Services</a></li> 
</ul> 
</div> 
</nav> 

PHP代碼:

<nav id="header-menu" class="clear-after"> 
      <!-- __toggle --> 
      <div id="main-menu-toggle"></div> 
      <!-- __level 1 --> 
      <?php 
      wp_nav_menu(array(
       'theme_location' => 'main-menu', 
       'container'=>'', 
       'container_class' => '', 
       'items_wrap'=>'%3$s', 
       'menu_id' => 'main-menu' 
      )); 
      ?> 
     </nav> 

我希望得到像下面。需要添加一個ID &類和刪除DIV

<div class="menu"> 

我怎樣才能解決這個...

+0

您的預期產出是多少? – Noman

回答

0

也許你可以試試這個 -

$defaults = array(
    'theme_location' => '', 
    'menu'   => '', 
    'container'  => 'div', 
    'container_class' => '', 
    'container_id' => '', 
    'menu_class'  => 'menu', 
    'menu_id'   => '', 
    'echo'   => true, 
    'fallback_cb'  => 'wp_page_menu', 
    'before'   => '', 
    'after'   => '', 
    'link_before'  => '', 
    'link_after'  => '', 
    'items_wrap'  => '<ul id="%1$s" class="%2$s">%3$s</ul>', 
    'depth'   => 0, 
    'walker'   => '' 
); 

wp_nav_menu($defaults); 

請詳細瞭解wp_nav_menu WordPress的網站

0

你需要這個。

wp_nav_menu(array(
        'theme_location' => 'main-menu', 
        'container' => 'div', 
        'container_class' => 'menu', 
        'items_wrap' => '<ul>%3$s</ul>' 
       )); 
1

實際的html輸出包含page_item類的項目。這意味着Wordpress會顯示頁面後備菜單。默認情況下,後備菜單包含<div class="menu">

請參閱Wordpress reference的默認設置中的'fallback_cb' => 'wp_page_menu',選項。 將此選項設置爲false將禁用後備菜單,但您仍需要在Wordpress後端設置菜單。

爲了解決這個問題,只是在WordPress後臺通過「外觀>菜單的」添加菜單,一定要檢查包含(在你的情況可能是「主菜單」)的主題定位框,而你做到這一點。 Wordpress將不再使用後備菜單,並且您的選項將適用。

您可以通過將類menu-item添加到菜單項而不是page_item來識別html輸出中的正確菜單。

0

嗯,問題是太老了,但如果他尋找一種方法來刪除額外的DIV(像我),這可能對別人有幫助。

解決方案是'fallback_cb'參數。如果沒有爲該主題位置指定菜單,則會調用回退函數。然後,該回調函數可能不存在'container'參數,或者它不會被傳遞,但是這會導致EXTRA DIV。

因此,在這種情況下,解決方案將使'fallback_cb'空字符串,並強制管理員創建菜單並將其關聯到該'theme_location'