如何循环浏览菜单项以在页脚中动态创建页面链接列表


How to loop through menu items to dynamically create a list of page links in the footer

我想在页脚中动态创建此菜单列表:

<a href="<?php bloginfo( 'url' ); ?>/">Home</a><br>
<a href="<?php bloginfo( 'url' ); ?>/about-us/">About Us</a><br>
<a href="<?php bloginfo( 'url' ); ?>/legal-services/">Our Legal Services:</a><br>
<a class="indent" href="<?php bloginfo( 'url' ); ?>/legal-services/commercial-law/">Commercial Law</a><br>
<a class="indent" href="<?php bloginfo( 'url' ); ?>/legal-services/concrete-law/">Concrete Law</a><br>
<a class="indent" href="<?php bloginfo( 'url' ); ?>/legal-services/general-business-law/">Business Law</a><br>
<a href="<?php bloginfo( 'url' ); ?>/contact-us/">Contact Us</a>

包括能够识别菜单项是子菜单项并使其缩进(例如:class="indent"(。 注意:这也可以使用无序列表进行编码。这对我来说无关紧要,因为它将是一个垂直列表。

它与标题中主导航菜单栏中的页面列表完全相同.php

这是我在标题中为主导航编写的代码:

<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
      <!-- button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar" -->  <!-- not on mirage? -->
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <div class="navbar-collapse collapse">
        <?php 
            $args = array(
                'menu'          => 'header-menu',       
                'menu_class'    => 'nav navbar-nav navbar-right',
                'container'     => 'false'                  
            );  
            wp_nav_menu( $args );
        ?>
    </div><!--/.navbar-collapse -->
  </div>
</nav >

以及我在主导航菜单中的功能.php

    add_theme_support( 'menus' );
    function register_theme_menus() {
        register_nav_menus(
            array (
                'header-menu'   => __( 'Header Menu' )
            )
        );
    }
    add_action( 'init', 'register_theme_menus' );

.

我只是想不出一种方法来复制/修改上述内容以在页脚中完成我需要的操作。 (请注意,这将直接编码到页脚.php中,而不是在小部件中创建。

任何人都可以提供任何指导吗?

编辑:

我尝试将此代码添加到页脚以获取解决方案,但我一定做错了什么,因为我收到以下错误消息: 菜单"标题菜单"未定义

          <?php 
            // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu)
            // This code based on wp_nav_menu's code to get Menu ID from menu slug
            $menu_name = 'header-menu';
            if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
            $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
            $menu_items = wp_get_nav_menu_items($menu->term_id);
            $menu_list = '<ul id="menu-' . $menu_name . '">';
            foreach ( (array) $menu_items as $key => $menu_item ) {
                $title = $menu_item->title;
                $url = $menu_item->url;
                $menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>';
            }
            $menu_list .= '</ul>';
            } else {
            $menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
            }
            // $menu_list now ready to output
            echo $menu_list;
          ?>

任何帮助将不胜感激!

哇.

.我其实是自己想通的。. 我想多了! 最终,解决方案非常简单。(注意:这仅适用于列表页面 - 在页脚中创建迷你站点地图(

您只需要添加以下代码行:

<div class="footermap">
    <ul style="list-style-type: none;"><?php wp_list_pages("title_li="); ?></ul>
</div>

并将其添加到您的 css 中以远离项目符号点,并正确排列:

.footermap > ul {
    padding-left: 0px; 
}
.footermap > ul ul.children {
    list-style-type: none; 
    padding-left: 15px; 
}

并且还要确保在WP管理区域中清理页面列表..不要在菜单结构中留下任何您实际上没有使用的"已发布",因为此代码将拾取它...即使您没有将其标记为已添加到主导航菜单。 (我只是将我想保留的那些标记为草稿......以防万一我以后需要它们,例如:博客页面(

编码如此简单,但绝对很难找到解决方案!!