4

私は最初のWordpressテーマを作成していますが、メニューのサポートに苦労しています。

以下に示すように、functions.phpにカスタムメニューを追加してheader.phpに実装しましたが、管理領域のmenu-optionが表示されません。

# functions.php

<?php

    add_theme_support( 'menus' );

    add_action( 'init', 'register_my_menus' );

    function register_my_menus() {
        register_nav_menus(
            array(
                'primary-menu' => __( 'Primary Menu' ),
                'secondary-menu' => __( 'Secondary Menu' )
            )
        );
    }

?>

# header.php
# [...]
    <?php wp_nav_menu( array( 'theme_location' => 'primary-menu' ) ); ?>
# [...]

私の設定:

  • Wordpressバージョン3.4.2
  • MAMP開発環境
  • プラグインなし

その他の情報:

  • メニューオプションは他のテンプレートに表示されます
  • メニューはページ上で正しくレンダリングされています

ここで何が欠けていますか?


編集#1

管理メニューにメニューオプションが表示されません(ここのように!

4

1 に答える 1

9

いくつかのこと-add_theme_support();は必要ありません。また、add_action('init'、'register_my_menus')

次のように、register_nav_menus関数をまっすぐ呼び出します。

register_nav_menus(
    array(
    'primary-menu' => __( 'Primary Menu' ),
    'secondary-menu' => __( 'Secondary Menu' )
    )
);

必要に応じて、関数が存在するかどうかを確認することもできます。しかし、それがあなた自身のテーマでのみ使用され、それが存在することがわかっている場合、それは実際には必要ありません。

if ( function_exists( 'register_nav_menus' ) ) {
    ...
}
于 2012-09-27T08:36:29.137 に答える