$locations =
get_registered_nav_menus();
$menu_locations =
get_nav_menu_locations();
$num_locations =
count( array_keys( $locations ) );
// Allowed actions: add, update, delete.
$action =
isset( $_REQUEST['action'
] ) ?
$_REQUEST['action'
] : 'edit';
/*
* If a JSON blob of navigation menu data is found, expand it and inject it
* into `$_POST` to avoid PHP `max_input_vars` limitations. See #14134.
*/
_wp_expand_nav_menu_post_data();
switch ( $action ) { case 'add-menu-item':
check_admin_referer( 'add-menu_item', 'menu-settings-column-nonce'
);
if ( isset( $_REQUEST['nav-menu-locations'
] ) ) { set_theme_mod( 'nav_menu_locations',
array_map( 'absint',
$_REQUEST['menu-locations'
] ) );
} elseif ( isset( $_REQUEST['menu-item'
] ) ) { wp_save_nav_menu_items( $nav_menu_selected_id,
$_REQUEST['menu-item'
] );
}