WordPress.org

Make WordPress Core

Ticket #19264: get_nav_menu_item_children.patch

File get_nav_menu_item_children.patch, 992 bytes (added by wpsmith, 4 years ago)

Patch

  • nav-menu.php

     
    545545} 
    546546 
    547547/** 
     548 * Returns all child nav_menu_items under a specific parent 
     549 * 
     550 * @param   int       the parent nav_menu_item ID 
     551 * @param   array     nav_menu_items 
     552 * @return  array     returns filtered array of nav_menu_items 
     553 */ 
     554function get_nav_menu_item_children( $parent_id, $nav_menu_items ) { 
     555        $nav_menu_item_list = array(); 
     556        foreach ( (array) $nav_menu_items as $nav_menu_item ) { 
     557                if ( $nav_menu_item->menu_item_parent == $parent_id ) { 
     558                        $nav_menu_item_list[] = $nav_menu_item; 
     559                        if ( $children = get_nav_menu_item_children( $nav_menu_item->ID, $nav_menu_items ) ) 
     560                                $nav_menu_item_list = array_merge( $nav_menu_item_list, $children ); 
     561                        } 
     562        } 
     563        return $nav_menu_item_list; 
     564} 
     565 
     566/** 
    548567 * Decorates a menu item object with the shared navigation menu item properties. 
    549568 * 
    550569 * Properties: