Menggunakan walker menu, tambahkan item kustom di akhir item menu

10

Saya perlu menambahkan bidang pencarian di akhir menu dalam daftar item.

Saya telah melihat pejalan kaki tetapi merasa sangat sulit untuk mencari tahu apa item terakhir (atau bahkan mendapatkan total). Di mana saya akan menambahkan kode untuk item khusus.

Saat ini saya punya;

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>
    }
}
v3nt
sumber

Jawaban:

19

Anda tidak perlu alat bantu jalan dalam kasus ini. Filter disebut wp_nav_menu_itemstersedia. Ini memungkinkan Anda untuk mengedit item daftar menu. Cukup tambahkan item daftar Anda sendiri dengan bidang pencarian.

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;
}

Catatan: jika Anda hanya ingin menargetkan menu tertentu, ada filter dinamis:

wp_nav_menu_{$menu->slug}_items

Geert
sumber
ace - benar-benar lupa tentang metode itu ... terima kasih.
v3nt
3
Anda dapat memeriksa $argsuntuk hanya menambahkan pencarian ke lokasi tema (menu) tertentu.
Stephen Harris