
创建和定制WordPress导航菜单的深入浅出教程
block_core_navigation_sort_menu_items_by_parent_id ( $menu_items )
block_core_navigation_sort_menu_items_by_parent_id: 这个函数用于按父级ID对导航菜单项进行排序。它根据菜单项的父子关系,将其排列成一个等级顺序。
将一个标准的菜单项数组排序到一个嵌套结构中,该结构以父菜单的ID为关键。
function block_core_navigation_sort_menu_items_by_parent_id( $menu_items ) { $sorted_menu_items = array(); foreach ( (array) $menu_items as $menu_item ) { $sorted_menu_items[ $menu_item->menu_order ] = $menu_item; } unset( $menu_items, $menu_item ); $menu_items_by_parent_id = array(); foreach ( $sorted_menu_items as $menu_item ) { $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item; } return $menu_items_by_parent_id; } /** * Turns menu item data into a nested array of parsed blocks * * @param array $menu_items An array of menu items that represent * an individual level of a menu. * @param array $menu_items_by_parent_id An array keyed by the id of the * parent menu where each element is an * array of menu items that belong to * that parent. * @return array An array of parsed block data. */