Как перебирать пункты меню для динамического создания списка ссылок на страницы в нижнем колонтитуле

Я хотел бы, чтобы этот список меню создавался динамически в нижнем колонтитуле:

<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»). Примечание: это также может быть закодировано с использованием неупорядоченных списков … это не имеет значения для меня, так как это будет вертикальный список.

Это точно такой же список страниц, которые находятся в главной панели меню навигации, найденной в header.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 >

И что у меня есть в function.php для основного меню навигации:

    add_theme_support( 'menus' );

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

.

Я просто не могу придумать способ дублировать / изменить вышеприведенное, чтобы сделать то, что мне нужно, в нижнем колонтитуле. (Обратите внимание, что это будет закодировано непосредственно в footer.php, а не создано внутри виджета.)

Кто-нибудь может предложить какое-либо руководство?

РЕДАКТИРОВАТЬ:

Я попытался добавить этот код в нижний колонтитул для решения, но я должен делать что-то не так, потому что я получаю сообщение об ошибке: Меню «header-menu» не определено

          <?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;
?>

Любая помощь будет оценена!

-1

Решение

Ух ты .. Я на самом деле понял это сам по себе .. Я был слишком обдумал это! Решение было так просто в конце. (Примечание: это для листинга страницы только — создать мини-карту сайта в нижнем колонтитуле)

Вам просто нужно добавить эту строку кода:

<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. Не оставляйте в структуре меню «опубликованные», которые вы на самом деле не используете, потому что этот код подхватит их … даже если вы не помечены как добавленные в главное меню навигации. (Я просто пометил те, которые хотел сохранить, как черновики … на тот случай, если они понадобятся мне позже, например: страница блога)

Так легко написать код, но найти решение было определенно сложно !!!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]