【发布时间】:2013-11-30 15:37:23
【问题描述】:
我有一个 wordpress 的自定义主题,当我添加一个页面时它会自动显示在菜单中,我添加了我想在菜单中显示的子页面,但菜单仅扩展到 1 级,我想要显示 3 个级别,例如
顶部导航菜单
产品 -> 硬件 -> DELL -> 笔记本电脑 -> 台式机
类似的东西。生成菜单的代码如下,请帮助我
<section id="nav-container">
<section class="container_12">
<section class="grid_12">
<!-- #nav start -->
<nav id="nav">
<ul>
<li><span class="nav-icon icon-home"></span> <a href="<?php echo home_url( '/' ); ?>">Home</a></li>
<?php
$wpmenu = new WP_Query(array('post_type' => 'page','post_status' => 'publish', 'post_parent' => '0','order' => 'ASC','orderby' => 'menu_order'));
$myi = 1;
if($wpmenu->have_posts()): while($wpmenu->have_posts()): $wpmenu->the_post();
$icon = get_post_meta(get_the_ID(), "icon", TRUE);
?>
<li><span class="nav-icon icon-<?php echo $icon;?>"></span>
<a href="<?php echo the_permalink(); ?>"><?php echo the_title(); ?></a>
<?php
$submenu2 = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'page' AND $wpdb->posts.post_parent = '".get_the_ID()."' ORDER BY menu_order ASC";
if($menu3 = $wpdb->get_results($submenu2, OBJECT))
{
echo "<ul>";
foreach($menu3 as $menu4)
{
?>
<li><a href="<?php echo get_permalink($menu4->ID); ?>"><?php echo $menu4->post_title; ?></a></li>
<?php
}
echo "</ul>";
}
else
{
echo "</li>";
}
?>
<?php
$myi++;
endwhile; endif;
wp_reset_query();
?>
</li>
</ul>
</nav>
<!-- #nav end -->
<!-- responsive navigation start -->
<select id="nav-responsive">
<option value="<?php echo home_url( '/' ); ?>">Home</option>
<?php
$active = "";
$wpmenu = new WP_Query(array('post_type' => 'page','post_status' => 'publish', 'post_parent' => '0','order' => 'ASC','orderby' => 'menu_order'));
if($wpmenu->have_posts()): while($wpmenu->have_posts()): $wpmenu->the_post();
?>
<option value="<?php echo get_permalink(); ?>">
<?php the_title();?>
</option>
<?php
endwhile; endif;
wp_reset_query();
?>
</select>
<!-- responsive navigation end -->
<section id="search-box">
<form action="<?php echo esc_url( home_url( '/' ) ); ?>" role="search" method="get" id="searchform">
<input id="m_search" name="s" type="text" placeholder="Type and hit enter..." />
<input class="search-submit" type="submit" id="searchsubmit" />
</form>
</section>
</section>
<!-- .grid_12 end -->
</section>
<!-- .container_12 end -->
</section>
<!-- #nav-container end -->
【问题讨论】:
-
你为什么不用
wp_nav_menu()? -
我不知道该怎么做,你能帮我解决一下,这样 CSS 设置和其他东西就不会受到干扰。您能告诉我如何嵌入该代码吗?
-
使用custom walker 创建您需要的输出。 wordpress.stackexchange.com 上还有更多示例。