2012-09-11 98 views
7

在我的主題還有用於導航菜單Wordpress。手動添加菜單項wp_nav_menu

function ct_nav() { 
    <nav> 
    <?php wp_nav_menu(array('container_id' => 'nav', 'theme_location' => 'primary')); ?> 
    </nav> 
} 

功能我如何可以手動添加更多的項目?單獨使用此功能。

+0

爲什麼不在函數調用後自己添加標記? –

+0

是的,我不明白你的意思,你可以在上面的標記中手動添加項目?你想要添加什麼? – csilk

回答

2

只是爲了以防萬一有人需要這樣的:

菜單項可以手動通過應用過濾器可以添加:

  • wp_nav_menu_items - 所有菜單
  • wp_nav_menu_{$menu->slug}_items - 菜單特別蛞蝓

還通過更改items_wrap,例如,通過刪除<ul>並明確將其添加到主題 - 這樣你就可以添加自己的項目。

+0

這需要一個菜單​​已經分配給menu_location。有沒有辦法做到這一點,沒有分配菜單(在外觀>菜單)。這對我正在做的多點工作很有幫助。 – raison

17

這裏是一個通過改變items_wrap的例子。

wp_nav_menu(array('items_wrap' => '<ul id="%1$s" class="%2$s"><li><a href="http://www.google.com">go to google</a></li>%3$s</ul>')); 

只是採取了默認值並添加了href。

7
function add_last_nav_item($items) { 
    return $items .= '<li><a href="#myModal" role="button" data-toggle="modal">Contact</a></li>'; 
} 
add_filter('wp_nav_menu_items','add_last_nav_item'); 
+0

這絕對是最好的解決方案。 –

+0

謝謝@JasonGlisson –

1

以上答案都不適用於我。這是我使用的jquery類型的解決方法。我需要將圖像添加到菜單的末尾。

按照常規使用wp_nav_menu(),一定要在menu_class中指定一個類,或者您可以指定一個ID。

$items = array(
    'theme_location' => 'header-menu', 
    'menu'   => '', 
    'container'  => 'div', 
    'container_class' => 'menu-{menu slug}-container', 
    'container_id' => '', 
    'menu_class'  => 'menuContainer', /* important, since we're targetting it with jquery*/ 
    'menu_id'   => '', 
    'echo'   => true, 
    'fallback_cb'  => 'wp_page_menu', 
    'before'   => '', 
    'after'   => '', 
    'link_before'  => '', 
    'link_after'  => '', 
    'depth'   => 0, 
    'walker'   => '' 
); 
wp_nav_menu($items); 

$(document).ready(function() { 
      $(".menuContainer ul").append("<li><img src='<?php echo get_template_directory_uri(); ?>/img/menuImage.png'></li>"); 
     }); 
相關問題