可折叠的

时间:2016-02-26 10:42:43

标签: php wordpress materialize

我一直在尝试使用MaterialiseCSS制作wordpress主题。除了我的移动侧菜单外,我几乎所有工作都有效。在我的菜单中,我有4个主要项目,下面有子页面。我希望在侧边菜单中以相同的方式显示这一点,使用"可折叠"类。在我不动态创建菜单项的测试环境中,我可以使其工作,但每当我想让Wordpress创建的菜单无法实现时。

我知道我应该使用一名导航员,而且我已经花了几个小时摆弄它,但是我无法让它工作。

我想要的东西:https://jsfiddle.net/bdf7yvbc

<ul class="collapsible collapsible-accordion">
  <li>
    <a class="collapsible-header">MSG</a>
    <div class="collapsible-body">
      <ul>
        <li><a href="bestuur.php">Bestuur</a></li>
        <li><a>Commissies</a></li>
        <li><a>Agenda</a></li>
      </ul>
    </div>
  </li>
</ul>

1 个答案:

答案 0 :(得分:0)

我最终设法在不使用wp_nav_menu和walker的情况下使用wp_get_nav_menu_items。

我的代码,如果有人有兴趣:

<?php

$menu_name = 'Side-Nav'; //Name as shown in Appearance -> Menus

if ( ($menu = wp_get_nav_menu_object( $menu_name ) ) && ( isset($menu) ) ) {
  $menuitems = wp_get_nav_menu_items($menu->term_id);
  ?>

  <ul class="collapsible collapsible-accordion">
    <?php
    $count = 0;
    $submenu = false;
    foreach( $menuitems as $item ):
        $link = $item->url;
        $title = $item->title;
        // item does not have a parent so menu_item_parent equals 0 (false)
        if ( !$item->menu_item_parent ):
        // save this id for later comparison with sub-menu items
        $parent_id = $item->ID;
    ?>

    <li>
      <a class="collapsible-header"><?php echo $title; ?></a>
      <div class="collapsible-body">
        <ul>
          <li><a href="<?php echo $link; ?>">
            <?php echo $title; ?>
        </a></li>
    <?php endif; ?>

        <?php if ( $parent_id == $item->menu_item_parent ): ?>
                <li>
                    <a href="<?php echo $link; ?>"><?php echo $title; ?></a>
                </li>

            <?php if ( $menuitems[ $count + 1 ]->menu_item_parent != $parent_id && $submenu ): ?>
            </ul>
            <?php $submenu = false; endif; ?>

        <?php endif; ?>

    <?php if ( $menuitems[ $count + 1 ]->menu_item_parent != $parent_id ): ?>
    </li>                           
    <?php $submenu = false; endif; ?>

<?php $count++; endforeach; }?>