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

WoothemesCanvasfunctions.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' ) );
    }

2 番目のメニューは、両方が存在する場合に両方のメニューを出力します。最初のメニューは、最初の質問で投稿したメニューに加えて使用される可能性があります。

于 2011-01-23T21:14:40.207 に答える
0

しかし、私の場合は init アクションを使用せず、メニュー登録関数を子テーマの function.php ファイルに入れただけです

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