动态创建的菜单无效

时间:2018-01-21 14:32:44

标签: wordpress

我正在创建一个wordpress菜单,如下所示:

   <?php wp_nav_menu(
        array(
          'theme_location' =>'main_nav',
          'walker' => new Walker_Nav_Primary()
        )
        ); ?>

它按照我的预期生成具有精确结构化方式的菜单。即:

<ul id="menu-primary" class="menu">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-target="#">Mega</a>
          <ul class="dropdown-menu">
            <li><a href="https://www.facebook.com/">sub 1</a></li>
            <li><a href="https://www.facebook.com/">sub2</a></li>
          </ul>
        </li>
  </ul>

但悬停效果停止工作。当我用生成的html替换wp_nav_menu()时,它再次起作用。我检查了所有的jquery代码是在footer.php设置的,我的菜单位于header.php,get_header()在get_footer()之前调用。所以如果静态html没问题,一切都应该没问题。奇怪!在幕后发生了什么错误。

2 个答案:

答案 0 :(得分:1)

我认为,您的菜单在关闭HTML标记时存在一些问题。调试HTML问题的更好方法是:

  1. 将菜单HTML保存到变量中。
  2. 在htmlentities函数内打印变量。
  3. 现在,您可以直观地看到打印HTML的错误。
  4. 希望能帮助您解决问题。感谢

答案 1 :(得分:0)

您可能需要将其添加到array

'echo' => true,

   <?php wp_nav_menu(
        array(
          'theme_location' =>'main_nav',
          'walker'         => new Walker_Nav_Primary(),
          'echo'           => true
        )
        ); ?>

官方文件显示为here