How I can add div to menu?

时间:2015-08-31 作者:Alexander Kolovsky

我有div结构

<div class = \'main-menu\'>
 <ul class = \'menu\'>
  <li class = \'item1\'></li>
  <li class = \'item2\'></li>
 </ul>
</div>
但我想在菜单中添加div

<div class = \'main-menu\'>
 <ul class = \'menu\'>
  <li class = \'item1\'></li>
  <li class = \'item2\'>
   <div class="adv_categories" id="adv_categories">
     <?php cp_create_categories_list( \'menu\' ) ?>
   </div>
  </li>
 </ul>
</div>
我该怎么做?

2 个回复
最合适的回答,由SO网友:Sam Malone 整理而成

使用wp\\u nav\\u菜单时,可以向其传递参数,以帮助您设置输出样式,请参见:

  • $container 是否包装ul,以及用什么包装。允许的标记为div和nav。对于无容器使用false,例如容器=>false。

  • $container_class 应用于容器的类。

  • $container_id 应用于容器的ID。

  • $menu_class CSS类,用于构成默认菜单的包含div元素,或在管理界面中配置自定义菜单时用于ul元素。

  • $before 在链接的前面输出文本。

  • $after 在链接的后面输出文本。

  • $link_before 在链接文本之前输出文本。

  • $link_after 在链接文本之后输出文本。

  • $items_wrap 用ul包装物品,以及如何包装。

    因此,在您的情况下,您可以使用

    array( \'link_before\' => \'<div class="your_class">\' , \'link_after\' => \'</div>\');
    
    但如果你问我,你可能可以对WordPress打印出来的类做你想做的事情。

    http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items

SO网友:Vlad Olaru

对于这种类型的结果,您需要弄脏双手并使用custom nav menu walker 这将使您能够完全控制菜单生成的输出。关于您计划如何处理菜单中的多个级别,涉及到许多复杂的问题(您是否只选择顶层?)。

据我所见,您不想只包装菜单项,还想插入多个菜单项。

您还可以\'walker_nav_menu_start_el\' filter 一个go,因为它允许您访问链接输出,并且您可以在输出之前添加标记。