【问题标题】:Wordpress. Adding menu item manually in wp_nav_menuWordPress。在 wp_nav_menu 中手动添加菜单项
【发布时间】:2012-09-03 22:11:11
【问题描述】:

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

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

如何手动添加更多项目?单独使用这个函数。

【问题讨论】:

  • 为什么不在函数调用后自己添加标记?
  • 是的,我不明白你的意思,你可以在上面的标记中手动添加项目吗?你到底想添加什么?

标签: wordpress menu


【解决方案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>");
        });

【讨论】:

    【解决方案2】:
    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');
    

    【讨论】:

    • 有人可以帮我如何只在移动菜单上显示相同吗?提前致谢
    • 您好,您能详细说明一下您希望在移动设备中显示的内容吗?
    • @PreethamHegde 一般来说,如果你想让一些东西出现在 wordpress 中的移动设备中,你可以使用:/ } else { / 在此处包含/显示针对笔记本电脑/台式机的资源 */ } ?>
    • @SaidErraoudy 以您的示例为例,我们如何通过标题定位特定项目?而不是整个 html 行?我想在你的函数中设置一个条件。
    • 更复杂的东西怎么样...?我有 4 个主菜单,每个都有子菜单(第 2 级项目)。我需要在第三个菜单的底部添加一个条目。
    【解决方案3】:

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

    【讨论】:

    • 哇,这是一个肮脏的黑客。工作,虽然?
    • @Edward 可悲的是,这不是 hack,Said Erraoudy soultion 也不是,它提供了一个模板 - 没有什么不好的,WP 只是在这里选择了一种非常非常不幸的方式来做到这一点 -这部分和整个 nav-menu.php 是 WP 的一个非常“遗留”的代码......
    【解决方案4】:

    只是为了有人需要这个:

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

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

    也可以通过更改 items_wrap,例如,通过删除 &lt;ul&gt; 并将其显式添加到主题中 - 这样您就可以添加自己的项目。

    【讨论】:

    • 这需要一个菜单​​已经分配给 menu_location。有没有办法在不分配菜单的情况下做到这一点(在外观>菜单中)。这对我正在进行的多站点工作很有帮助。
    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 2013-04-23
    • 2012-05-11
    • 1970-01-01
    • 2015-05-26
    • 2012-07-06
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多