Edit File by line
/home/zeestwma/richards.../wp-admin/includes
File: nav-menu.php
// Remove non-existent/deleted menus.
[1500] Fix | Delete
$nav_menu_option['auto_add'] = array_intersect(
[1501] Fix | Delete
$nav_menu_option['auto_add'],
[1502] Fix | Delete
wp_get_nav_menus( array( 'fields' => 'ids' ) )
[1503] Fix | Delete
);
[1504] Fix | Delete
[1505] Fix | Delete
update_option( 'nav_menu_options', $nav_menu_option, false );
[1506] Fix | Delete
[1507] Fix | Delete
wp_defer_term_counting( false );
[1508] Fix | Delete
[1509] Fix | Delete
/** This action is documented in wp-includes/nav-menu.php */
[1510] Fix | Delete
do_action( 'wp_update_nav_menu', $nav_menu_selected_id );
[1511] Fix | Delete
[1512] Fix | Delete
/* translators: %s: Nav menu title. */
[1513] Fix | Delete
$message = sprintf( __( '%s has been updated.' ), '<strong>' . $nav_menu_selected_title . '</strong>' );
[1514] Fix | Delete
$notice_args = array(
[1515] Fix | Delete
'id' => 'message',
[1516] Fix | Delete
'dismissible' => true,
[1517] Fix | Delete
'additional_classes' => array( 'updated' ),
[1518] Fix | Delete
);
[1519] Fix | Delete
[1520] Fix | Delete
$messages[] = wp_get_admin_notice( $message, $notice_args );
[1521] Fix | Delete
[1522] Fix | Delete
unset( $menu_items, $unsorted_menu_items );
[1523] Fix | Delete
[1524] Fix | Delete
return $messages;
[1525] Fix | Delete
}
[1526] Fix | Delete
[1527] Fix | Delete
/**
[1528] Fix | Delete
* If a JSON blob of navigation menu data is in POST data, expand it and inject
[1529] Fix | Delete
* it into `$_POST` to avoid PHP `max_input_vars` limitations. See #14134.
[1530] Fix | Delete
*
[1531] Fix | Delete
* @ignore
[1532] Fix | Delete
* @since 4.5.3
[1533] Fix | Delete
* @access private
[1534] Fix | Delete
*/
[1535] Fix | Delete
function _wp_expand_nav_menu_post_data() {
[1536] Fix | Delete
if ( ! isset( $_POST['nav-menu-data'] ) ) {
[1537] Fix | Delete
return;
[1538] Fix | Delete
}
[1539] Fix | Delete
[1540] Fix | Delete
$data = json_decode( stripslashes( $_POST['nav-menu-data'] ) );
[1541] Fix | Delete
[1542] Fix | Delete
if ( ! is_null( $data ) && $data ) {
[1543] Fix | Delete
foreach ( $data as $post_input_data ) {
[1544] Fix | Delete
/*
[1545] Fix | Delete
* For input names that are arrays (e.g. `menu-item-db-id[3][4][5]`),
[1546] Fix | Delete
* derive the array path keys via regex and set the value in $_POST.
[1547] Fix | Delete
*/
[1548] Fix | Delete
preg_match( '#([^\[]*)(\[(.+)\])?#', $post_input_data->name, $matches );
[1549] Fix | Delete
[1550] Fix | Delete
$array_bits = array( $matches[1] );
[1551] Fix | Delete
[1552] Fix | Delete
if ( isset( $matches[3] ) ) {
[1553] Fix | Delete
$array_bits = array_merge( $array_bits, explode( '][', $matches[3] ) );
[1554] Fix | Delete
}
[1555] Fix | Delete
[1556] Fix | Delete
$new_post_data = array();
[1557] Fix | Delete
[1558] Fix | Delete
// Build the new array value from leaf to trunk.
[1559] Fix | Delete
for ( $i = count( $array_bits ) - 1; $i >= 0; $i-- ) {
[1560] Fix | Delete
if ( count( $array_bits ) - 1 === $i ) {
[1561] Fix | Delete
$new_post_data[ $array_bits[ $i ] ] = wp_slash( $post_input_data->value );
[1562] Fix | Delete
} else {
[1563] Fix | Delete
$new_post_data = array( $array_bits[ $i ] => $new_post_data );
[1564] Fix | Delete
}
[1565] Fix | Delete
}
[1566] Fix | Delete
[1567] Fix | Delete
$_POST = array_replace_recursive( $_POST, $new_post_data );
[1568] Fix | Delete
}
[1569] Fix | Delete
}
[1570] Fix | Delete
}
[1571] Fix | Delete
[1572] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function