WP_Customize_Nav_Menu_Item_Setting::filter_wp_get_nav_menu_items()
Filters the wp_get_nav_menu_items() result to supply the previewed menu items.
Method of the class: WP_Customize_Nav_Menu_Item_Setting{}
No Hooks.
Return
WP_Post[]
. Array of menu item objects.
Usage
$WP_Customize_Nav_Menu_Item_Setting = new WP_Customize_Nav_Menu_Item_Setting(); $WP_Customize_Nav_Menu_Item_Setting->filter_wp_get_nav_menu_items( $items, $menu, $args );
- $items(WP_Post[]) (required)
- An array of menu item post objects.
- $menu(WP_Term) (required)
- The menu object.
- $args(array) (required)
- An array of arguments used to retrieve menu item objects.
Notes
Changelog
Since 4.3.0 | Introduced. |
WP_Customize_Nav_Menu_Item_Setting::filter_wp_get_nav_menu_items() WP Customize Nav Menu Item Setting::filter wp get nav menu items code WP 6.3
public function filter_wp_get_nav_menu_items( $items, $menu, $args ) { $this_item = $this->value(); $current_nav_menu_term_id = null; if ( isset( $this_item['nav_menu_term_id'] ) ) { $current_nav_menu_term_id = $this_item['nav_menu_term_id']; unset( $this_item['nav_menu_term_id'] ); } $should_filter = ( $menu->term_id === $this->original_nav_menu_term_id || $menu->term_id === $current_nav_menu_term_id ); if ( ! $should_filter ) { return $items; } // Handle deleted menu item, or menu item moved to another menu. $should_remove = ( false === $this_item || ( isset( $this_item['_invalid'] ) && true === $this_item['_invalid'] ) || ( $this->original_nav_menu_term_id === $menu->term_id && $current_nav_menu_term_id !== $this->original_nav_menu_term_id ) ); if ( $should_remove ) { $filtered_items = array(); foreach ( $items as $item ) { if ( $item->db_id !== $this->post_id ) { $filtered_items[] = $item; } } return $filtered_items; } $mutated = false; $should_update = ( is_array( $this_item ) && $current_nav_menu_term_id === $menu->term_id ); if ( $should_update ) { foreach ( $items as $item ) { if ( $item->db_id === $this->post_id ) { foreach ( get_object_vars( $this->value_as_wp_post_nav_menu_item() ) as $key => $value ) { $item->$key = $value; } $mutated = true; } } // Not found so we have to append it.. if ( ! $mutated ) { $items[] = $this->value_as_wp_post_nav_menu_item(); } } return $items; }