WP_NAV_MENU()是否在其他位置显示列表?

时间:2021-09-25 作者:user212871

尝试添加菜单列表时,如下所示

<li>
 <div class="dropdown-menu" aria-labelledby="navbarDropdown">

      <?php 
           wp_nav_menu(array(
               \'theme_location\' => \'header_menu_location\',
               \'echo\' => false,
               \'items_wrap\' => \'%3$s\'
            ));

      ?>
                    
</div>
此函数应该显示div元素中的项目列表,但我得到的是,该列表正好显示在外部li元素之后。更奇怪的是,当我不使用属性“items\\u wrap”时,输出会正确显示在div容器内部,只有当我添加到args数组时,输出列表才会显示在其div容器外部。我做错了什么?

1 个回复
SO网友:Jacob Peattie

它不起作用有两个原因。

你有echo 设置为false。这意味着除非您echo 手动执行您有items_wrap 设置它%3$s. 这意味着各个菜单项<li> 标签,将不带包装器输出。这将使最终结构:

<ul>
  <li>
    <div class="dropdown-menu">
      <li></li>
      <li></li>
      <li></li>
    </div>
  </li>
</ul>
这不是有效的HTML。这个<li> 标签需要位于<ol><ul>, 一点也不<div>. 最简单的解决方案是将div更改为<ul>:

<li>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">

      <?php 
           wp_nav_menu(array(
               \'theme_location\' => \'header_menu_location\',
               \'echo\' => false,
               \'items_wrap\' => \'%3$s\'
            ));

      ?>
                    
</ul>

相关推荐

用标准的干净文件替换NAV-menus.php文件?

我是一个自学成才的wordpress网站设计师,请原谅我的无知。我为一个客户开发的几个网站最近被一个印尼黑客组织破坏了(很有趣!)。客户端没有更新wordpress安装和其他一些危及安全的事情。遗憾的是,没有网站的清理备份。网络主机给了我一个包含恶意软件扫描结果的文本文件。看起来很多受影响的文件都是导航菜单。网站的php文件。文本文件中显示的扫描结果示例如下:“[主目录]/[网站文件夹名称]/wp includes/nav-menu.php:SL-php-INJECTOR-1-ejw.UNOFFICIAL