Php 如何通过循环菜单项在页脚中动态创建页面链接列表
我希望在页脚中动态创建此菜单列表:Php 如何通过循环菜单项在页脚中动态创建页面链接列表,php,wordpress,loops,menu,footer,Php,Wordpress,Loops,Menu,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/">O
<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>
我只是想不出一种方法来复制/修改上面的内容,以满足我在页脚中的需要。(注意,这将直接编码到footer.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>
同时也要确保你清理了WP管理区的页面列表。。不要在菜单结构中留下任何您实际上没有使用的“已发布”,因为此代码将拾取它。。。即使您没有将其标记为添加到主导航菜单中。(我只是把我想留下的东西标为草稿……以防万一我以后需要它们,例如:博客页面)
很容易编写代码,但很难找到解决方案 我不知道为什么有人给了我“否决票”。我正试图自己找到解决办法。。但我对这一切还是新手。。我只是想得到一些支持。如果你认为我的问题不好,至少给我一些反馈,告诉我如何改进。因为这个答案没有使用我正在寻找的wp_nav_menu()解决方案(只列出顶部导航中的页面),这意味着使用wp_list_pages()将显示所有发布的页面,不管它们是否在菜单中。例如,如果你有一个感谢页面。。它将列在您的页脚网站地图中。因为我不想那样。。我不得不添加带有页面id的exclude参数,以跳过显示某些页面。这是要使用的代码:
<?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>
.footermap > ul {
padding-left: 0px;
}
.footermap > ul ul.children {
list-style-type: none;
padding-left: 15px;
}