WordPress的。在wp_nav_menu中手动添加菜单项

时间:2012-09-11 02:33:48

标签: wordpress menu

在我的主题中,有一个导航菜单功能

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

我怎样才能手动添加更多项目?单独使用此功能。

4 个答案:

答案 0 :(得分:21)

这是一个更改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。

答案 1 :(得分:16)

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');

答案 2 :(得分:3)

只是有人需要这个:

可以通过应用过滤器手动添加菜单项:

  • wp_nav_menu_items - 适用于所有菜单
  • wp_nav_menu_{$menu->slug}_items - 用于特定slug的菜单

此外,通过更改items_wrap,例如删除<ul>并在主题中明确添加 - 这样您就可以添加自己的项目了。

答案 3 :(得分: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>");
        });