web-dev-qa-db-ja.com

カスタムメニューはどこで作成されますか?

Wp-admin> appearance>メニューでmain-navという単純なメニューを作成しました。正常に動作します。

しかし、私はメニューの最後にカスタム要素を追加したいのですが…Apple.comメニューバーの検索ボックスのような検索ボックスです。メニューがどこでコードで構成されているのかわかりません。これをどこに追加できますか?任意のアイデア?

(私はStarkersテーマを使っています)

編集

私を正しい方向に向けてくれたtnorthcuttとhakreに感謝します。解決策はこのコードを私のテーマのfunctions.phpの他の 'add_filter'のものと一緒に入れることでした。

add_filter('wp_nav_menu_items','search_box_function');
function search_box_function ($nav){
return $nav."<li class='menu-header-search'><form action='http://example.com/' id='searchform' method='get'><input type='text' name='s' id='s' placeholder='Search'></form></li>";
}

UPDATE

@ tnorthcuttの解決策は、画面にメニューが1つしかない場合に最適ですが、2番目のメニューを追加すると、そのメニューに検索ボックスも追加されます。 1つのメニューだけをターゲットにする方法私のメニューはこんな感じで登録しました:

register_nav_menus( array(
  'primary' => __( 'Primary Navigation', 'twentyten' ),
  'secondary'=>__('Secondary Menu', 'twentyten' ),

 ) );

2番目のものはこのように表示されます。

wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) ); 
2
cannyboy

これを試して:

add_filter('wp_nav_menu_items','search_box_function');
function search_box_function {
search box code goes here
}

参考のために、Genesisフレームワークでこれを成し遂げるためのBill Ericksonの 優れたチュートリアル を調べてください。

1