バージョン3.0で追加されたカスタムメニューの機能を私のテーマに追加する方法についてのチュートリアルをいくつか読んだことがありますが、それらはすべて多少異なるように思われ、余分なコードが含まれているかどうかわかりません。さらに、私はあなたのテーマをメニュー互換として登録するためのコードがRCと一般公開の間で変更されたことを読みました。
テーマにカスタムメニューのサポートを追加する最も簡単な方法は何ですか?
最も簡単な方法はregister_nav_menus
関数を使うことです。これは'after_setup_theme'
にフックするべきです:
function my_cool_menu_function(){
register_nav_menus( array(
'primary' => 'Primary Navigation'
));
}
add_action( 'after_setup_theme', 'my_cool_menu_function' );
次に、あなたのテーマの中で、単にそのメニューの位置を呼び出します。
wp_nav_menu( array( 'theme_location' => 'primary' ) );
これをあなたのテーマのfunctions.php
に追加してください。持っていない場合は、作成してください。
<?php
add_theme_support('menus');
function register_my_menus() {
$args = array(
'menu-1' => __( 'Main Menu' )
);
register_nav_menus( $args );
}
add_action( 'init', 'register_my_menus' );
?>
そしてこれはどこにでも行くことができ、私はそれをheader.php
に持っています( wp_nav_menu
() docsを見てください):
<?php
$args = array(
'menu' => 'Main Menu',
'sort_column' => 'menu_order',
'container' => 'div',
);
wp_nav_menu( $args ); ?>
これがどのようにカスタムナビゲーションを最も単純な形式で含めるか、私はそれが識別子ではなくナビゲーションを拾うと思います:
<div class="access">
<?php wp_nav_menu(); ?>
</div>
関数に渡すことができる基本的なオプションもあります、これが私が一般的に使うものです:
$navArgs=array(
'menu_id' => 'nav', // target the nav menu
'container' => '', // don't wrap the menu in <ul>
);