การใช้เมนูวอล์คเกอร์เพิ่มรายการที่กำหนดเองที่ส่วนท้ายของรายการเมนู


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


เอซ - ลืมวิธีการนั้นอย่างสมบูรณ์ ... ขอบคุณ
v3nt

3
คุณสามารถทำเครื่องหมายที่$argsเพื่อเพิ่มการค้นหาไปยังตำแหน่งเฉพาะของธีม (เมนู)
Stephen Harris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.