だから私は私のメニューに検索バーをレンダリングするためにクールな小さな関数を使用しています. ここでチェックしてください:
function add_search_to_wp_menu ( $items, $args ) {
if( 'main-menu' === $args -> theme_location ) {
$items .= '<li class="menu-item menu-item-search">';
$items .= '<form method="get" class="menu-search-form" action="' . get_bloginfo('home') . '/"><p><input class="text_input" type="text" value="Enter Text & Click to Search" name="s" id="s" onfocus="if (this.value == \'Enter Text & Click to Search\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'Enter Text & Click to Search\';}" /><input type="submit" class="my-wp-search" id="searchsubmit" value="search" /></p></form>';
$items .= '</li>';
}
return $items;
}
add_filter('wp_nav_menu_items','add_search_to_wp_menu',10,2);
私はそれを作りませんでした-しかし、それは仕事をしています。
したがって、唯一の問題は、それが最上位に表示されることです。
<ul>
<li>Normal Item</li>
<li>OH LOOOK THE SEATCHBAR APPEARS HERE</li>
</ul>
問題は、メニューにさらに数ステップ下に表示する必要があることです。つまり、ここにあります:
<ul>
<li>
Normal Item
<ul>
<li>
I want THE SEARCH to appear here
</li>
<ul>
</li>
</ul>
<ul><li><ul><li>
それだけでなく、メニューの最後以降に出してほしい…
IE、独自のサブアイテムを持つ 3 つの通常のアイテムのリストがある場合、注入されると次のようになります。
<ul>
<li>
Normal Item1
</li>
<li>
Normal Item2
</li>
<li>
Normal Item3
</li>
<li>
Normal Item
<ul>
<li>
I want THE SEARCH to appear here
</li>
<ul>
</li>
</ul>
うまくいけば、それは理にかなっています。助けてくれてありがとう!