質問: "wp_nav_menu_items"フォークを使用して特定のメニューのみをカスタムメイドする ここでの助けのおかげで、私はメインメニューにカスタム検索ボックスを追加することに成功しました...これを私のテーマのfunctions.phpに追加することによって。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>"; } ただし、フッターを配置するためのメニューをもう1つ追加しましたが、検索ボックスもこのメニューに追加されます。検索ボックスをプライマリメニューにのみ追加する方法を教えてください。メニューを登録するための私のコードは次のとおりです。register_nav_menus( array( 'primary' => __( 'primary navigation', 'twentyten' ), 'secondary'=>__('secondary menu', 'twentyten' ), ) ); ..そして二次メニューを表示するためのコードは:wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) );
回答: カスタム検索ボックスをメインメニューにのみ追加するには、wp_nav_menu_itemsフィルタによって提供される2番目のパラメータを渡して、theme_locationが主要な場所であるかどうかを確認します。add_filter('wp_nav_menu_items','search_box_function', 10, 2); function search_box_function( $nav, $args ) { if( $args->theme_location == 'primary' ) 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>"; return $nav; }