メニューウォーカーを使用して、メニューのアイテムの最後にカスタムアイテムを追加する


10

リストアイテムのメニューの最後に検索フィールドを追加する必要があります。

私はウォーカーを見てきましたが、最後のアイテムが何であるかを理解すること(または合計を取得することさえ)は非常に困難であることがわかりました。また、カスタムアイテムのコードはどこに追加しますか。

私は現在持っています。

class mainNav_walker extends Walker_Nav_Menu
{
    public function start_el( &$output, $item, $depth, $args )
    {
        //print_r($item);

        $output .= $this->custom_content( $item );
        parent::start_el( &$output, $item, $depth, $args );
    }

    protected function custom_content( $item )
    {
       // add <li>SEARCH FIELD HERE?</li>
    }
}

回答:


19

この場合、歩行器は必要ありません。と呼ばれるフィルターwp_nav_menu_itemsが使用可能です。メニューのリスト項目を編集できます。独自のリスト項目を検索フィールドに追加するだけです。

add_filter( 'wp_nav_menu_items', 'add_search_to_nav', 10, 2 );

function add_search_to_nav( $items, $args )
{
    $items .= '<li>SEARCH</li>';
    return $items;
}

注:特定のメニューのみを対象にする場合は、動的フィルターが存在します。

wp_nav_menu_{$menu->slug}_items


ace-その方法を完全に忘れてしまいました...ありがとう。
v3nt 2012年

3
をチェックし$argsて、特定のテーマ(メニュー)の場所にのみ検索を追加できます。
スティーブンハリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.