无需通过编程方式创建/更新自定义菜单,只需执行您正在尝试的操作即可。
仅仅依靠wp_nav_menu()
回退,wp_page_menu()
, 或者定义自己的自定义回调,例如输出wp_list_pages()
.
调用此:
`wp_nav_menu( array( \'theme_location\' => \'main-nav\' ) );`
。。。如果没有为指定自定义菜单
\'main-nav\'
主题位置,输出:
`wp_page_menu()`.
如果需要更细粒度的控制,例如显式控制菜单深度,可以执行以下操作:
wp_nav_menu( array(
\'theme_location\' => \'main-nav\',
\'depth\' => 3,
\'container_class\' => \'nav\',
\'menu_id\' => \'main-nav\',
\'fallback_cb\' => \'wpse87933_main_nav_cb\'
) );
。。。然后定义回调,如下所示:
function wpse87933_main_nav_cb() {
?>
<div class="nav">
<ul id="main-nav">
<?php
wp_list_pages( array(
\'depth\' => 3,
\'title_li\' => \'\'
) );
?>
</ul>
</div>
<?php
}
您甚至可以通过使用
has_nav_menu()
有条件的:
if ( has_nav_menu( \'main-nav\' ) ) {
wp_nav_menu( array(
\'theme_location\' => \'main-nav\',
\'depth\' => 3,
\'container_class\' => \'nav\',
\'menu_id\' => \'main-nav\'
) );
} else {
?>
<div class="nav">
<ul id="main-nav">
<?php
wp_list_pages( array(
\'depth\' => 3,
\'title_li\' => \'\'
) );
?>
</ul>
</div>
<?php
}
此时,您只需注意这3个函数之间的CSS类差异: