Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-admin/includes
File: nav-menu.php
</ul>
[1000] Fix | Delete
</div><!-- /.tabs-panel -->
[1001] Fix | Delete
[1002] Fix | Delete
<div id="<?php echo esc_attr( "tabs-panel-{$taxonomy_name}-all" ); ?>"
[1003] Fix | Delete
class="tabs-panel tabs-panel-view-all <?php echo ( 'all' === $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>"
[1004] Fix | Delete
role="region" aria-label="<?php echo esc_attr( $taxonomy->labels->all_items ); ?>" tabindex="0"
[1005] Fix | Delete
>
[1006] Fix | Delete
<?php if ( ! empty( $page_links ) ) : ?>
[1007] Fix | Delete
<div class="add-menu-item-pagelinks">
[1008] Fix | Delete
<?php echo $page_links; ?>
[1009] Fix | Delete
</div>
[1010] Fix | Delete
<?php endif; ?>
[1011] Fix | Delete
[1012] Fix | Delete
<ul id="<?php echo esc_attr( "{$taxonomy_name}checklist" ); ?>"
[1013] Fix | Delete
data-wp-lists="<?php echo esc_attr( "list:{$taxonomy_name}" ); ?>"
[1014] Fix | Delete
class="categorychecklist form-no-clear"
[1015] Fix | Delete
>
[1016] Fix | Delete
<?php
[1017] Fix | Delete
$args['walker'] = $walker;
[1018] Fix | Delete
echo walk_nav_menu_tree(
[1019] Fix | Delete
array_map( 'wp_setup_nav_menu_item', $terms ),
[1020] Fix | Delete
0,
[1021] Fix | Delete
(object) $args
[1022] Fix | Delete
);
[1023] Fix | Delete
?>
[1024] Fix | Delete
</ul>
[1025] Fix | Delete
[1026] Fix | Delete
<?php if ( ! empty( $page_links ) ) : ?>
[1027] Fix | Delete
<div class="add-menu-item-pagelinks">
[1028] Fix | Delete
<?php echo $page_links; ?>
[1029] Fix | Delete
</div>
[1030] Fix | Delete
<?php endif; ?>
[1031] Fix | Delete
</div><!-- /.tabs-panel -->
[1032] Fix | Delete
[1033] Fix | Delete
<div id="<?php echo esc_attr( "tabs-panel-search-taxonomy-{$taxonomy_name}" ); ?>"
[1034] Fix | Delete
class="tabs-panel <?php echo ( 'search' === $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>"
[1035] Fix | Delete
role="region" aria-label="<?php echo esc_attr( $taxonomy->labels->search_items ); ?>" tabindex="0">
[1036] Fix | Delete
<?php
[1037] Fix | Delete
if ( isset( $_REQUEST[ "quick-search-taxonomy-{$taxonomy_name}" ] ) ) {
[1038] Fix | Delete
$searched = esc_attr( $_REQUEST[ "quick-search-taxonomy-{$taxonomy_name}" ] );
[1039] Fix | Delete
$search_results = get_terms(
[1040] Fix | Delete
array(
[1041] Fix | Delete
'taxonomy' => $taxonomy_name,
[1042] Fix | Delete
'name__like' => $searched,
[1043] Fix | Delete
'fields' => 'all',
[1044] Fix | Delete
'orderby' => 'count',
[1045] Fix | Delete
'order' => 'DESC',
[1046] Fix | Delete
'hierarchical' => false,
[1047] Fix | Delete
)
[1048] Fix | Delete
);
[1049] Fix | Delete
} else {
[1050] Fix | Delete
$searched = '';
[1051] Fix | Delete
$search_results = array();
[1052] Fix | Delete
}
[1053] Fix | Delete
?>
[1054] Fix | Delete
<p class="quick-search-wrap">
[1055] Fix | Delete
<label for="<?php echo esc_attr( "quick-search-taxonomy-{$taxonomy_name}" ); ?>" class="screen-reader-text">
[1056] Fix | Delete
<?php
[1057] Fix | Delete
/* translators: Hidden accessibility text. */
[1058] Fix | Delete
_e( 'Search' );
[1059] Fix | Delete
?>
[1060] Fix | Delete
</label>
[1061] Fix | Delete
<input type="search"
[1062] Fix | Delete
class="quick-search" value="<?php echo $searched; ?>"
[1063] Fix | Delete
name="<?php echo esc_attr( "quick-search-taxonomy-{$taxonomy_name}" ); ?>"
[1064] Fix | Delete
id="<?php echo esc_attr( "quick-search-taxonomy-{$taxonomy_name}" ); ?>"
[1065] Fix | Delete
/>
[1066] Fix | Delete
<span class="spinner"></span>
[1067] Fix | Delete
<?php
[1068] Fix | Delete
submit_button(
[1069] Fix | Delete
__( 'Search' ),
[1070] Fix | Delete
'small quick-search-submit hide-if-js',
[1071] Fix | Delete
'submit',
[1072] Fix | Delete
false,
[1073] Fix | Delete
array( 'id' => "submit-quick-search-taxonomy-{$taxonomy_name}" )
[1074] Fix | Delete
);
[1075] Fix | Delete
?>
[1076] Fix | Delete
</p>
[1077] Fix | Delete
[1078] Fix | Delete
<ul id="<?php echo esc_attr( "{$taxonomy_name}-search-checklist" ); ?>"
[1079] Fix | Delete
data-wp-lists="<?php echo esc_attr( "list:{$taxonomy_name}" ); ?>"
[1080] Fix | Delete
class="categorychecklist form-no-clear"
[1081] Fix | Delete
>
[1082] Fix | Delete
<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
[1083] Fix | Delete
<?php
[1084] Fix | Delete
$args['walker'] = $walker;
[1085] Fix | Delete
echo walk_nav_menu_tree(
[1086] Fix | Delete
array_map( 'wp_setup_nav_menu_item', $search_results ),
[1087] Fix | Delete
0,
[1088] Fix | Delete
(object) $args
[1089] Fix | Delete
);
[1090] Fix | Delete
?>
[1091] Fix | Delete
<?php elseif ( is_wp_error( $search_results ) ) : ?>
[1092] Fix | Delete
<li><?php echo $search_results->get_error_message(); ?></li>
[1093] Fix | Delete
<?php elseif ( ! empty( $searched ) ) : ?>
[1094] Fix | Delete
<li><?php _e( 'No results found.' ); ?></li>
[1095] Fix | Delete
<?php endif; ?>
[1096] Fix | Delete
</ul>
[1097] Fix | Delete
</div><!-- /.tabs-panel -->
[1098] Fix | Delete
[1099] Fix | Delete
<p class="button-controls wp-clearfix" data-items-type="<?php echo esc_attr( "taxonomy-{$taxonomy_name}" ); ?>">
[1100] Fix | Delete
<span class="list-controls hide-if-no-js">
[1101] Fix | Delete
<input type="checkbox"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?>
[1102] Fix | Delete
id="<?php echo esc_attr( $tab_name ); ?>" class="select-all"
[1103] Fix | Delete
/>
[1104] Fix | Delete
<label for="<?php echo esc_attr( $tab_name ); ?>"><?php _e( 'Select All' ); ?></label>
[1105] Fix | Delete
</span>
[1106] Fix | Delete
[1107] Fix | Delete
<span class="add-to-menu">
[1108] Fix | Delete
<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?>
[1109] Fix | Delete
class="button submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>"
[1110] Fix | Delete
name="add-taxonomy-menu-item" id="<?php echo esc_attr( "submit-taxonomy-{$taxonomy_name}" ); ?>"
[1111] Fix | Delete
/>
[1112] Fix | Delete
<span class="spinner"></span>
[1113] Fix | Delete
</span>
[1114] Fix | Delete
</p>
[1115] Fix | Delete
[1116] Fix | Delete
</div><!-- /.taxonomydiv -->
[1117] Fix | Delete
<?php
[1118] Fix | Delete
}
[1119] Fix | Delete
[1120] Fix | Delete
/**
[1121] Fix | Delete
* Save posted nav menu item data.
[1122] Fix | Delete
*
[1123] Fix | Delete
* @since 3.0.0
[1124] Fix | Delete
*
[1125] Fix | Delete
* @param int $menu_id The menu ID for which to save this item. Value of 0 makes a draft, orphaned menu item. Default 0.
[1126] Fix | Delete
* @param array[] $menu_data The unsanitized POSTed menu item data.
[1127] Fix | Delete
* @return int[] The database IDs of the items saved
[1128] Fix | Delete
*/
[1129] Fix | Delete
function wp_save_nav_menu_items( $menu_id = 0, $menu_data = array() ) {
[1130] Fix | Delete
$menu_id = (int) $menu_id;
[1131] Fix | Delete
$items_saved = array();
[1132] Fix | Delete
[1133] Fix | Delete
if ( 0 === $menu_id || is_nav_menu( $menu_id ) ) {
[1134] Fix | Delete
[1135] Fix | Delete
// Loop through all the menu items' POST values.
[1136] Fix | Delete
foreach ( (array) $menu_data as $_possible_db_id => $_item_object_data ) {
[1137] Fix | Delete
if (
[1138] Fix | Delete
// Checkbox is not checked.
[1139] Fix | Delete
empty( $_item_object_data['menu-item-object-id'] ) &&
[1140] Fix | Delete
(
[1141] Fix | Delete
// And item type either isn't set.
[1142] Fix | Delete
! isset( $_item_object_data['menu-item-type'] ) ||
[1143] Fix | Delete
// Or URL is the default.
[1144] Fix | Delete
in_array( $_item_object_data['menu-item-url'], array( 'https://', 'http://', '' ), true ) ||
[1145] Fix | Delete
// Or it's not a custom menu item (but not the custom home page).
[1146] Fix | Delete
! ( 'custom' === $_item_object_data['menu-item-type'] && ! isset( $_item_object_data['menu-item-db-id'] ) ) ||
[1147] Fix | Delete
// Or it *is* a custom menu item that already exists.
[1148] Fix | Delete
! empty( $_item_object_data['menu-item-db-id'] )
[1149] Fix | Delete
)
[1150] Fix | Delete
) {
[1151] Fix | Delete
// Then this potential menu item is not getting added to this menu.
[1152] Fix | Delete
continue;
[1153] Fix | Delete
}
[1154] Fix | Delete
[1155] Fix | Delete
// If this possible menu item doesn't actually have a menu database ID yet.
[1156] Fix | Delete
if (
[1157] Fix | Delete
empty( $_item_object_data['menu-item-db-id'] ) ||
[1158] Fix | Delete
( 0 > $_possible_db_id ) ||
[1159] Fix | Delete
$_possible_db_id !== (int) $_item_object_data['menu-item-db-id']
[1160] Fix | Delete
) {
[1161] Fix | Delete
$_actual_db_id = 0;
[1162] Fix | Delete
} else {
[1163] Fix | Delete
$_actual_db_id = (int) $_item_object_data['menu-item-db-id'];
[1164] Fix | Delete
}
[1165] Fix | Delete
[1166] Fix | Delete
$args = array(
[1167] Fix | Delete
'menu-item-db-id' => ( isset( $_item_object_data['menu-item-db-id'] ) ? $_item_object_data['menu-item-db-id'] : '' ),
[1168] Fix | Delete
'menu-item-object-id' => ( isset( $_item_object_data['menu-item-object-id'] ) ? $_item_object_data['menu-item-object-id'] : '' ),
[1169] Fix | Delete
'menu-item-object' => ( isset( $_item_object_data['menu-item-object'] ) ? $_item_object_data['menu-item-object'] : '' ),
[1170] Fix | Delete
'menu-item-parent-id' => ( isset( $_item_object_data['menu-item-parent-id'] ) ? $_item_object_data['menu-item-parent-id'] : '' ),
[1171] Fix | Delete
'menu-item-position' => ( isset( $_item_object_data['menu-item-position'] ) ? $_item_object_data['menu-item-position'] : '' ),
[1172] Fix | Delete
'menu-item-type' => ( isset( $_item_object_data['menu-item-type'] ) ? $_item_object_data['menu-item-type'] : '' ),
[1173] Fix | Delete
'menu-item-title' => ( isset( $_item_object_data['menu-item-title'] ) ? $_item_object_data['menu-item-title'] : '' ),
[1174] Fix | Delete
'menu-item-url' => ( isset( $_item_object_data['menu-item-url'] ) ? $_item_object_data['menu-item-url'] : '' ),
[1175] Fix | Delete
'menu-item-description' => ( isset( $_item_object_data['menu-item-description'] ) ? $_item_object_data['menu-item-description'] : '' ),
[1176] Fix | Delete
'menu-item-attr-title' => ( isset( $_item_object_data['menu-item-attr-title'] ) ? $_item_object_data['menu-item-attr-title'] : '' ),
[1177] Fix | Delete
'menu-item-target' => ( isset( $_item_object_data['menu-item-target'] ) ? $_item_object_data['menu-item-target'] : '' ),
[1178] Fix | Delete
'menu-item-classes' => ( isset( $_item_object_data['menu-item-classes'] ) ? $_item_object_data['menu-item-classes'] : '' ),
[1179] Fix | Delete
'menu-item-xfn' => ( isset( $_item_object_data['menu-item-xfn'] ) ? $_item_object_data['menu-item-xfn'] : '' ),
[1180] Fix | Delete
);
[1181] Fix | Delete
[1182] Fix | Delete
$items_saved[] = wp_update_nav_menu_item( $menu_id, $_actual_db_id, $args );
[1183] Fix | Delete
[1184] Fix | Delete
}
[1185] Fix | Delete
}
[1186] Fix | Delete
[1187] Fix | Delete
return $items_saved;
[1188] Fix | Delete
}
[1189] Fix | Delete
[1190] Fix | Delete
/**
[1191] Fix | Delete
* Adds custom arguments to some of the meta box object types.
[1192] Fix | Delete
*
[1193] Fix | Delete
* @since 3.0.0
[1194] Fix | Delete
*
[1195] Fix | Delete
* @access private
[1196] Fix | Delete
*
[1197] Fix | Delete
* @param object $data_object The post type or taxonomy meta-object.
[1198] Fix | Delete
* @return object The post type or taxonomy object.
[1199] Fix | Delete
*/
[1200] Fix | Delete
function _wp_nav_menu_meta_box_object( $data_object = null ) {
[1201] Fix | Delete
if ( isset( $data_object->name ) ) {
[1202] Fix | Delete
[1203] Fix | Delete
if ( 'page' === $data_object->name ) {
[1204] Fix | Delete
$data_object->_default_query = array(
[1205] Fix | Delete
'orderby' => 'menu_order title',
[1206] Fix | Delete
'post_status' => 'publish',
[1207] Fix | Delete
);
[1208] Fix | Delete
[1209] Fix | Delete
// Posts should show only published items.
[1210] Fix | Delete
} elseif ( 'post' === $data_object->name ) {
[1211] Fix | Delete
$data_object->_default_query = array(
[1212] Fix | Delete
'post_status' => 'publish',
[1213] Fix | Delete
);
[1214] Fix | Delete
[1215] Fix | Delete
// Categories should be in reverse chronological order.
[1216] Fix | Delete
} elseif ( 'category' === $data_object->name ) {
[1217] Fix | Delete
$data_object->_default_query = array(
[1218] Fix | Delete
'orderby' => 'id',
[1219] Fix | Delete
'order' => 'DESC',
[1220] Fix | Delete
);
[1221] Fix | Delete
[1222] Fix | Delete
// Custom post types should show only published items.
[1223] Fix | Delete
} else {
[1224] Fix | Delete
$data_object->_default_query = array(
[1225] Fix | Delete
'post_status' => 'publish',
[1226] Fix | Delete
);
[1227] Fix | Delete
}
[1228] Fix | Delete
}
[1229] Fix | Delete
[1230] Fix | Delete
return $data_object;
[1231] Fix | Delete
}
[1232] Fix | Delete
[1233] Fix | Delete
/**
[1234] Fix | Delete
* Returns the menu formatted to edit.
[1235] Fix | Delete
*
[1236] Fix | Delete
* @since 3.0.0
[1237] Fix | Delete
*
[1238] Fix | Delete
* @param int $menu_id Optional. The ID of the menu to format. Default 0.
[1239] Fix | Delete
* @return string|WP_Error The menu formatted to edit or error object on failure.
[1240] Fix | Delete
*/
[1241] Fix | Delete
function wp_get_nav_menu_to_edit( $menu_id = 0 ) {
[1242] Fix | Delete
$menu = wp_get_nav_menu_object( $menu_id );
[1243] Fix | Delete
[1244] Fix | Delete
// If the menu exists, get its items.
[1245] Fix | Delete
if ( is_nav_menu( $menu ) ) {
[1246] Fix | Delete
$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'post_status' => 'any' ) );
[1247] Fix | Delete
$result = '<div id="menu-instructions" class="post-body-plain';
[1248] Fix | Delete
$result .= ( ! empty( $menu_items ) ) ? ' menu-instructions-inactive">' : '">';
[1249] Fix | Delete
$result .= '<p>' . __( 'Add menu items from the column on the left.' ) . '</p>';
[1250] Fix | Delete
$result .= '</div>';
[1251] Fix | Delete
[1252] Fix | Delete
if ( empty( $menu_items ) ) {
[1253] Fix | Delete
return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';
[1254] Fix | Delete
}
[1255] Fix | Delete
[1256] Fix | Delete
/**
[1257] Fix | Delete
* Filters the Walker class used when adding nav menu items.
[1258] Fix | Delete
*
[1259] Fix | Delete
* @since 3.0.0
[1260] Fix | Delete
*
[1261] Fix | Delete
* @param string $class The walker class to use. Default 'Walker_Nav_Menu_Edit'.
[1262] Fix | Delete
* @param int $menu_id ID of the menu being rendered.
[1263] Fix | Delete
*/
[1264] Fix | Delete
$walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id );
[1265] Fix | Delete
[1266] Fix | Delete
if ( class_exists( $walker_class_name ) ) {
[1267] Fix | Delete
$walker = new $walker_class_name();
[1268] Fix | Delete
} else {
[1269] Fix | Delete
return new WP_Error(
[1270] Fix | Delete
'menu_walker_not_exist',
[1271] Fix | Delete
sprintf(
[1272] Fix | Delete
/* translators: %s: Walker class name. */
[1273] Fix | Delete
__( 'The Walker class named %s does not exist.' ),
[1274] Fix | Delete
'<strong>' . $walker_class_name . '</strong>'
[1275] Fix | Delete
)
[1276] Fix | Delete
);
[1277] Fix | Delete
}
[1278] Fix | Delete
[1279] Fix | Delete
$some_pending_menu_items = false;
[1280] Fix | Delete
$some_invalid_menu_items = false;
[1281] Fix | Delete
[1282] Fix | Delete
foreach ( (array) $menu_items as $menu_item ) {
[1283] Fix | Delete
if ( isset( $menu_item->post_status ) && 'draft' === $menu_item->post_status ) {
[1284] Fix | Delete
$some_pending_menu_items = true;
[1285] Fix | Delete
}
[1286] Fix | Delete
if ( ! empty( $menu_item->_invalid ) ) {
[1287] Fix | Delete
$some_invalid_menu_items = true;
[1288] Fix | Delete
}
[1289] Fix | Delete
}
[1290] Fix | Delete
[1291] Fix | Delete
if ( $some_pending_menu_items ) {
[1292] Fix | Delete
$message = __( 'Click Save Menu to make pending menu items public.' );
[1293] Fix | Delete
$notice_args = array(
[1294] Fix | Delete
'type' => 'info',
[1295] Fix | Delete
'additional_classes' => array( 'notice-alt', 'inline' ),
[1296] Fix | Delete
);
[1297] Fix | Delete
$result .= wp_get_admin_notice( $message, $notice_args );
[1298] Fix | Delete
}
[1299] Fix | Delete
[1300] Fix | Delete
if ( $some_invalid_menu_items ) {
[1301] Fix | Delete
$message = __( 'There are some invalid menu items. Please check or delete them.' );
[1302] Fix | Delete
$notice_args = array(
[1303] Fix | Delete
'type' => 'error',
[1304] Fix | Delete
'additional_classes' => array( 'notice-alt', 'inline' ),
[1305] Fix | Delete
);
[1306] Fix | Delete
$result .= wp_get_admin_notice( $message, $notice_args );
[1307] Fix | Delete
}
[1308] Fix | Delete
[1309] Fix | Delete
$result .= '<ul class="menu" id="menu-to-edit"> ';
[1310] Fix | Delete
$result .= walk_nav_menu_tree(
[1311] Fix | Delete
array_map( 'wp_setup_nav_menu_item', $menu_items ),
[1312] Fix | Delete
0,
[1313] Fix | Delete
(object) array( 'walker' => $walker )
[1314] Fix | Delete
);
[1315] Fix | Delete
$result .= ' </ul> ';
[1316] Fix | Delete
[1317] Fix | Delete
return $result;
[1318] Fix | Delete
} elseif ( is_wp_error( $menu ) ) {
[1319] Fix | Delete
return $menu;
[1320] Fix | Delete
}
[1321] Fix | Delete
}
[1322] Fix | Delete
[1323] Fix | Delete
/**
[1324] Fix | Delete
* Returns the columns for the nav menus page.
[1325] Fix | Delete
*
[1326] Fix | Delete
* @since 3.0.0
[1327] Fix | Delete
*
[1328] Fix | Delete
* @return string[] Array of column titles keyed by their column name.
[1329] Fix | Delete
*/
[1330] Fix | Delete
function wp_nav_menu_manage_columns() {
[1331] Fix | Delete
return array(
[1332] Fix | Delete
'_title' => __( 'Show advanced menu properties' ),
[1333] Fix | Delete
'cb' => '<input type="checkbox" />',
[1334] Fix | Delete
'link-target' => __( 'Link Target' ),
[1335] Fix | Delete
'title-attribute' => __( 'Title Attribute' ),
[1336] Fix | Delete
'css-classes' => __( 'CSS Classes' ),
[1337] Fix | Delete
'xfn' => __( 'Link Relationship (XFN)' ),
[1338] Fix | Delete
'description' => __( 'Description' ),
[1339] Fix | Delete
);
[1340] Fix | Delete
}
[1341] Fix | Delete
[1342] Fix | Delete
/**
[1343] Fix | Delete
* Deletes orphaned draft menu items
[1344] Fix | Delete
*
[1345] Fix | Delete
* @access private
[1346] Fix | Delete
* @since 3.0.0
[1347] Fix | Delete
*
[1348] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[1349] Fix | Delete
*/
[1350] Fix | Delete
function _wp_delete_orphaned_draft_menu_items() {
[1351] Fix | Delete
global $wpdb;
[1352] Fix | Delete
[1353] Fix | Delete
$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
[1354] Fix | Delete
[1355] Fix | Delete
// Delete orphaned draft menu items.
[1356] Fix | Delete
$menu_items_to_delete = $wpdb->get_col(
[1357] Fix | Delete
$wpdb->prepare(
[1358] Fix | Delete
"SELECT ID FROM $wpdb->posts AS p
[1359] Fix | Delete
LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id
[1360] Fix | Delete
WHERE post_type = 'nav_menu_item' AND post_status = 'draft'
[1361] Fix | Delete
AND meta_key = '_menu_item_orphaned' AND meta_value < %d",
[1362] Fix | Delete
$delete_timestamp
[1363] Fix | Delete
)
[1364] Fix | Delete
);
[1365] Fix | Delete
[1366] Fix | Delete
foreach ( (array) $menu_items_to_delete as $menu_item_id ) {
[1367] Fix | Delete
wp_delete_post( $menu_item_id, true );
[1368] Fix | Delete
}
[1369] Fix | Delete
}
[1370] Fix | Delete
[1371] Fix | Delete
/**
[1372] Fix | Delete
* Saves nav menu items.
[1373] Fix | Delete
*
[1374] Fix | Delete
* @since 3.6.0
[1375] Fix | Delete
*
[1376] Fix | Delete
* @param int|string $nav_menu_selected_id ID, slug, or name of the currently-selected menu.
[1377] Fix | Delete
* @param string $nav_menu_selected_title Title of the currently-selected menu.
[1378] Fix | Delete
* @return string[] The menu updated messages.
[1379] Fix | Delete
*/
[1380] Fix | Delete
function wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) {
[1381] Fix | Delete
$unsorted_menu_items = wp_get_nav_menu_items(
[1382] Fix | Delete
$nav_menu_selected_id,
[1383] Fix | Delete
array(
[1384] Fix | Delete
'orderby' => 'ID',
[1385] Fix | Delete
'output' => ARRAY_A,
[1386] Fix | Delete
'output_key' => 'ID',
[1387] Fix | Delete
'post_status' => 'draft,publish',
[1388] Fix | Delete
)
[1389] Fix | Delete
);
[1390] Fix | Delete
[1391] Fix | Delete
$messages = array();
[1392] Fix | Delete
$menu_items = array();
[1393] Fix | Delete
[1394] Fix | Delete
// Index menu items by DB ID.
[1395] Fix | Delete
foreach ( $unsorted_menu_items as $_item ) {
[1396] Fix | Delete
$menu_items[ $_item->db_id ] = $_item;
[1397] Fix | Delete
}
[1398] Fix | Delete
[1399] Fix | Delete
$post_fields = array(
[1400] Fix | Delete
'menu-item-db-id',
[1401] Fix | Delete
'menu-item-object-id',
[1402] Fix | Delete
'menu-item-object',
[1403] Fix | Delete
'menu-item-parent-id',
[1404] Fix | Delete
'menu-item-position',
[1405] Fix | Delete
'menu-item-type',
[1406] Fix | Delete
'menu-item-title',
[1407] Fix | Delete
'menu-item-url',
[1408] Fix | Delete
'menu-item-description',
[1409] Fix | Delete
'menu-item-attr-title',
[1410] Fix | Delete
'menu-item-target',
[1411] Fix | Delete
'menu-item-classes',
[1412] Fix | Delete
'menu-item-xfn',
[1413] Fix | Delete
);
[1414] Fix | Delete
[1415] Fix | Delete
wp_defer_term_counting( true );
[1416] Fix | Delete
[1417] Fix | Delete
// Loop through all the menu items' POST variables.
[1418] Fix | Delete
if ( ! empty( $_POST['menu-item-db-id'] ) ) {
[1419] Fix | Delete
foreach ( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
[1420] Fix | Delete
[1421] Fix | Delete
// Menu item title can't be blank.
[1422] Fix | Delete
if ( ! isset( $_POST['menu-item-title'][ $_key ] ) || '' === $_POST['menu-item-title'][ $_key ] ) {
[1423] Fix | Delete
continue;
[1424] Fix | Delete
}
[1425] Fix | Delete
[1426] Fix | Delete
$args = array();
[1427] Fix | Delete
foreach ( $post_fields as $field ) {
[1428] Fix | Delete
$args[ $field ] = isset( $_POST[ $field ][ $_key ] ) ? $_POST[ $field ][ $_key ] : '';
[1429] Fix | Delete
}
[1430] Fix | Delete
[1431] Fix | Delete
$menu_item_db_id = wp_update_nav_menu_item(
[1432] Fix | Delete
$nav_menu_selected_id,
[1433] Fix | Delete
( (int) $_POST['menu-item-db-id'][ $_key ] !== $_key ? 0 : $_key ),
[1434] Fix | Delete
$args
[1435] Fix | Delete
);
[1436] Fix | Delete
[1437] Fix | Delete
if ( is_wp_error( $menu_item_db_id ) ) {
[1438] Fix | Delete
$messages[] = wp_get_admin_notice(
[1439] Fix | Delete
$menu_item_db_id->get_error_message(),
[1440] Fix | Delete
array(
[1441] Fix | Delete
'id' => 'message',
[1442] Fix | Delete
'additional_classes' => array( 'error' ),
[1443] Fix | Delete
)
[1444] Fix | Delete
);
[1445] Fix | Delete
} else {
[1446] Fix | Delete
unset( $menu_items[ $menu_item_db_id ] );
[1447] Fix | Delete
}
[1448] Fix | Delete
}
[1449] Fix | Delete
}
[1450] Fix | Delete
[1451] Fix | Delete
// Remove menu items from the menu that weren't in $_POST.
[1452] Fix | Delete
if ( ! empty( $menu_items ) ) {
[1453] Fix | Delete
foreach ( array_keys( $menu_items ) as $menu_item_id ) {
[1454] Fix | Delete
if ( is_nav_menu_item( $menu_item_id ) ) {
[1455] Fix | Delete
wp_delete_post( $menu_item_id );
[1456] Fix | Delete
}
[1457] Fix | Delete
}
[1458] Fix | Delete
}
[1459] Fix | Delete
[1460] Fix | Delete
// Store 'auto-add' pages.
[1461] Fix | Delete
$auto_add = ! empty( $_POST['auto-add-pages'] );
[1462] Fix | Delete
$nav_menu_option = (array) get_option( 'nav_menu_options' );
[1463] Fix | Delete
[1464] Fix | Delete
if ( ! isset( $nav_menu_option['auto_add'] ) ) {
[1465] Fix | Delete
$nav_menu_option['auto_add'] = array();
[1466] Fix | Delete
}
[1467] Fix | Delete
[1468] Fix | Delete
if ( $auto_add ) {
[1469] Fix | Delete
if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'], true ) ) {
[1470] Fix | Delete
$nav_menu_option['auto_add'][] = $nav_menu_selected_id;
[1471] Fix | Delete
}
[1472] Fix | Delete
} else {
[1473] Fix | Delete
$key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'], true );
[1474] Fix | Delete
if ( false !== $key ) {
[1475] Fix | Delete
unset( $nav_menu_option['auto_add'][ $key ] );
[1476] Fix | Delete
}
[1477] Fix | Delete
}
[1478] Fix | Delete
[1479] Fix | Delete
// Remove non-existent/deleted menus.
[1480] Fix | Delete
$nav_menu_option['auto_add'] = array_intersect(
[1481] Fix | Delete
$nav_menu_option['auto_add'],
[1482] Fix | Delete
wp_get_nav_menus( array( 'fields' => 'ids' ) )
[1483] Fix | Delete
);
[1484] Fix | Delete
[1485] Fix | Delete
update_option( 'nav_menu_options', $nav_menu_option );
[1486] Fix | Delete
[1487] Fix | Delete
wp_defer_term_counting( false );
[1488] Fix | Delete
[1489] Fix | Delete
/** This action is documented in wp-includes/nav-menu.php */
[1490] Fix | Delete
do_action( 'wp_update_nav_menu', $nav_menu_selected_id );
[1491] Fix | Delete
[1492] Fix | Delete
/* translators: %s: Nav menu title. */
[1493] Fix | Delete
$message = sprintf( __( '%s has been updated.' ), '<strong>' . $nav_menu_selected_title . '</strong>' );
[1494] Fix | Delete
$notice_args = array(
[1495] Fix | Delete
'id' => 'message',
[1496] Fix | Delete
'dismissible' => true,
[1497] Fix | Delete
'additional_classes' => array( 'updated' ),
[1498] Fix | Delete
);
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function