4
    <?php
    if ( function_exists('has_nav_menu') && has_nav_menu('primary-menu') ) {
        wp_nav_menu( array( 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'main-nav', 'menu_class' => 'nav fl', 'theme_location' => 'primary-menu' ) );
    } else {
    ?>

我正在尝试在我的Woothemes Canvasfunctions.php的子主题中添加来自 Wordpress 菜单管理的二级菜单。我想有一种方法可以将它添加到上面的数组中,但我无法让它工作。想法?

4

2 回答 2

6

杰森,您首先需要使用 register_nav_menu() 注册您的“新”(二级)菜单,例如:

add_action( 'init', 'register_my_menu' );

function register_my_menu() {
    register_nav_menu( 'secondary-menu', __( 'Secondary Menu' ) );
}

您可以在主题的 functions.php 文件中执行此操作。

然后您就可以在模板文件中调用该菜单。要使用上面的代码,您可能需要以下内容:

if ( function_exists('has_nav_menu') && has_nav_menu('secondary-menu') ) {
        wp_nav_menu( array( 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'secondary-nav', 'menu_class' => 'nav fl', 'theme_location' => 'secondary-menu' ) );
    }

或许

if ( function_exists('has_nav_menu') && has_nav_menu('primary-menu') && has_nav_menu('secondary-menu') ) {
        wp_nav_menu( array( 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'main-nav', 'menu_class' => 'nav fl', 'theme_location' => 'primary-menu' ) );

        wp_nav_menu( array( 'sort_column' => 'menu_order', 'container' => 'ul', 'menu_id' => 'secondary-nav', 'menu_class' => 'nav fl', 'theme_location' => 'secondary-menu' ) );
    }

如果两个菜单都存在,第二个将输出两个菜单,除了您在最初问题中发布的菜单之外,可能还会使用第一个菜单。

于 2011-01-23T21:14:40.207 回答
0

但就我而言,我没有使用init动作,只是将菜单注册功能放在我的子主题的function.php文件中

register_nav_menu( 'footer', 'Footer Menu' );
于 2013-10-30T06:50:07.240 回答