自定义Wordpress菜单结构

时间:2017-10-05 08:35:09

标签: php wordpress menu structure

我是Wordpress的新手,并为我的主导航菜单编写自定义结构,因为我需要能够将列放在子菜单div中。但是,我的代码无效:

            <div class="menu-menu-1-container">
          <ul id="menu-menu-1" class="menu">

            <?php
            $menuname = wp_get_nav_menu_object("Menu 1" );
            $menu_name = $menuname->name;
            $locations = get_nav_menu_locations();
            $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
            $menuitems = wp_get_nav_menu_items( $menu->term_id, array( 'order' => 'DESC' ) );

            $count = 0;
            $submenu = false;

            foreach( $menuitems as $item ):
                    // set up title and url
              $title = $item->title;
              $link = $item->url;

              // 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 class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children">
                  <a href="<?php echo $link; ?>"><?php echo $title; ?></a>

                  <?php

                  endif;

                  if ( $parent_id == $item->menu_item_parent ):
                    if ( !$submenu ): $submenu = true; ?>

                      <ul class="sub-menu">

                      <?php endif; ?>

                      <li class="menu-item menu-item-type-post_type menu-item-object-page">
                        <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;
                      endif;
                      ?>

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

                <?php
                $submenu = false; endif;
                $count++; endforeach;
                ?>


          </ul>
        </div>

目前根本没有显示任何菜单,我检查了我是否正确拼写了菜单名称并且我做了。有人能看出我做错了吗?

1 个答案:

答案 0 :(得分:0)

WordPress对其菜单进行简单查询。

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_id' => 'primary-menu' ) ); ?>

您可以从https://developer.wordpress.org/reference/functions/wp_nav_menu/了解更多信息您可以使用css和javascript轻松调整此设置。但是像@ akshay-shah那样,你可以使用nav walker类,如果你想使用像bootstrap这样的css框架。参考:https://github.com/wp-bootstrap/wp-bootstrap-navwalker

相关问题