この質問を明確にしたい:「外観>メニュー」セクションを使用してメインナビゲーションを管理し、ページ内サイドバー(チェリーピック、メニューの一部)に配置するために第1レベルのサブナビゲーションをプルできるようにしたい)。使いたくないwp_list_pages
など。「外観>メニュー」からナビゲーションの両方の側面を管理できるようにしたいと思います。
自分のウォーカーを書かずにこれを行う簡単な方法はありますか?
この質問を明確にしたい:「外観>メニュー」セクションを使用してメインナビゲーションを管理し、ページ内サイドバー(チェリーピック、メニューの一部)に配置するために第1レベルのサブナビゲーションをプルできるようにしたい)。使いたくないwp_list_pages
など。「外観>メニュー」からナビゲーションの両方の側面を管理できるようにしたいと思います。
自分のウォーカーを書かずにこれを行う簡単な方法はありますか?
@alibaster のソリューションは機能しますが、複数のナビゲーション メニューが必要です。すべてのメニュー項目を 1 つのメニューから管理することが目標の場合は、レイアウトに応じて絶対配置を使用できます。
.menu-item {
position:relative;
}
.menu-item .sub-menu {
display:none;
}
.current-menu-ancestor .sub-menu {
display:block;
position:absolute;
left:0;
top:100px;
}
「walker」引数を使用して、wp_nav_menu 呼び出しの出力をカスタマイズできます。
http://codex.wordpress.org/Function_Reference/wp_nav_menu#Using_a_Custom_Walker_Function
http://wp.tutsplus.com/tutorials/creative-coding/understanding-the-walker-class/
この小さなスニペットを好きな場所に置いてください。「if」条件を追加したので、メニューをまだ割り当てていない場合はコードが表示されません。
<?php
if ( has_nav_menu( 'sub-menu' ) ) {
wp_nav_menu( array(
'theme_location' => 'sub-menu',
));
} ?>
これらを追加し続けたい場合は、「サブメニュー」という名前を好きなように変更できます。詳細については、http://codex.wordpress.org/Function_Reference/has_nav_menuをご覧ください。
[外観] > [メニュー] で新しいメニューを作成し、 を使用して好きな場所に表示できます<?php wp_nav_menu( array('menu' => 'Project Nav' )); ?>
。もちろん、新しいメニューの名前である 'Project Nav' を変更する必要があります。
その関数に関する完全な情報は、ここのコーデックスにあります: wp_nav_menu()
たとえば、Sub Nav Menu という名前のメニューがある場合は、次のように使用します。
<?php wp_nav_menu( array('menu' => 'Sub Nav Menu' )); ?>
メニューを表示したいテンプレート ファイルの php 行全体をドロップするだけで、メニューの名前を新しいメニューの名前に変更することを忘れないでください。
これがあなたが探していたものであることを願っています。そうでない場合は、お知らせください。正しい方向に進みます。