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/clone/wp-inclu...
File: nav-menu.php
$menu_item->xfn = '';
[1000] Fix | Delete
}
[1001] Fix | Delete
} elseif ( isset( $menu_item->taxonomy ) ) {
[1002] Fix | Delete
$menu_item->ID = $menu_item->term_id;
[1003] Fix | Delete
$menu_item->db_id = 0;
[1004] Fix | Delete
$menu_item->menu_item_parent = 0;
[1005] Fix | Delete
$menu_item->object_id = (int) $menu_item->term_id;
[1006] Fix | Delete
$menu_item->post_parent = (int) $menu_item->parent;
[1007] Fix | Delete
$menu_item->type = 'taxonomy';
[1008] Fix | Delete
[1009] Fix | Delete
$object = get_taxonomy( $menu_item->taxonomy );
[1010] Fix | Delete
$menu_item->object = $object->name;
[1011] Fix | Delete
$menu_item->type_label = $object->labels->singular_name;
[1012] Fix | Delete
[1013] Fix | Delete
$menu_item->title = $menu_item->name;
[1014] Fix | Delete
$menu_item->url = get_term_link( $menu_item, $menu_item->taxonomy );
[1015] Fix | Delete
$menu_item->target = '';
[1016] Fix | Delete
$menu_item->attr_title = '';
[1017] Fix | Delete
$menu_item->description = get_term_field( 'description', $menu_item->term_id, $menu_item->taxonomy );
[1018] Fix | Delete
$menu_item->classes = array();
[1019] Fix | Delete
$menu_item->xfn = '';
[1020] Fix | Delete
[1021] Fix | Delete
}
[1022] Fix | Delete
[1023] Fix | Delete
/**
[1024] Fix | Delete
* Filters a navigation menu item object.
[1025] Fix | Delete
*
[1026] Fix | Delete
* @since 3.0.0
[1027] Fix | Delete
*
[1028] Fix | Delete
* @param object $menu_item The menu item object.
[1029] Fix | Delete
*/
[1030] Fix | Delete
return apply_filters( 'wp_setup_nav_menu_item', $menu_item );
[1031] Fix | Delete
}
[1032] Fix | Delete
[1033] Fix | Delete
/**
[1034] Fix | Delete
* Returns the menu items associated with a particular object.
[1035] Fix | Delete
*
[1036] Fix | Delete
* @since 3.0.0
[1037] Fix | Delete
*
[1038] Fix | Delete
* @param int $object_id Optional. The ID of the original object. Default 0.
[1039] Fix | Delete
* @param string $object_type Optional. The type of object, such as 'post_type' or 'taxonomy'.
[1040] Fix | Delete
* Default 'post_type'.
[1041] Fix | Delete
* @param string $taxonomy Optional. If $object_type is 'taxonomy', $taxonomy is the name
[1042] Fix | Delete
* of the tax that $object_id belongs to. Default empty.
[1043] Fix | Delete
* @return int[] The array of menu item IDs; empty array if none.
[1044] Fix | Delete
*/
[1045] Fix | Delete
function wp_get_associated_nav_menu_items( $object_id = 0, $object_type = 'post_type', $taxonomy = '' ) {
[1046] Fix | Delete
$object_id = (int) $object_id;
[1047] Fix | Delete
$menu_item_ids = array();
[1048] Fix | Delete
[1049] Fix | Delete
$query = new WP_Query();
[1050] Fix | Delete
$menu_items = $query->query(
[1051] Fix | Delete
array(
[1052] Fix | Delete
'meta_key' => '_menu_item_object_id',
[1053] Fix | Delete
'meta_value' => $object_id,
[1054] Fix | Delete
'post_status' => 'any',
[1055] Fix | Delete
'post_type' => 'nav_menu_item',
[1056] Fix | Delete
'posts_per_page' => -1,
[1057] Fix | Delete
)
[1058] Fix | Delete
);
[1059] Fix | Delete
foreach ( (array) $menu_items as $menu_item ) {
[1060] Fix | Delete
if ( isset( $menu_item->ID ) && is_nav_menu_item( $menu_item->ID ) ) {
[1061] Fix | Delete
$menu_item_type = get_post_meta( $menu_item->ID, '_menu_item_type', true );
[1062] Fix | Delete
if (
[1063] Fix | Delete
'post_type' === $object_type &&
[1064] Fix | Delete
'post_type' === $menu_item_type
[1065] Fix | Delete
) {
[1066] Fix | Delete
$menu_item_ids[] = (int) $menu_item->ID;
[1067] Fix | Delete
} elseif (
[1068] Fix | Delete
'taxonomy' === $object_type &&
[1069] Fix | Delete
'taxonomy' === $menu_item_type &&
[1070] Fix | Delete
get_post_meta( $menu_item->ID, '_menu_item_object', true ) === $taxonomy
[1071] Fix | Delete
) {
[1072] Fix | Delete
$menu_item_ids[] = (int) $menu_item->ID;
[1073] Fix | Delete
}
[1074] Fix | Delete
}
[1075] Fix | Delete
}
[1076] Fix | Delete
[1077] Fix | Delete
return array_unique( $menu_item_ids );
[1078] Fix | Delete
}
[1079] Fix | Delete
[1080] Fix | Delete
/**
[1081] Fix | Delete
* Callback for handling a menu item when its original object is deleted.
[1082] Fix | Delete
*
[1083] Fix | Delete
* @since 3.0.0
[1084] Fix | Delete
* @access private
[1085] Fix | Delete
*
[1086] Fix | Delete
* @param int $object_id The ID of the original object being trashed.
[1087] Fix | Delete
*/
[1088] Fix | Delete
function _wp_delete_post_menu_item( $object_id ) {
[1089] Fix | Delete
$object_id = (int) $object_id;
[1090] Fix | Delete
[1091] Fix | Delete
$menu_item_ids = wp_get_associated_nav_menu_items( $object_id, 'post_type' );
[1092] Fix | Delete
[1093] Fix | Delete
foreach ( (array) $menu_item_ids as $menu_item_id ) {
[1094] Fix | Delete
wp_delete_post( $menu_item_id, true );
[1095] Fix | Delete
}
[1096] Fix | Delete
}
[1097] Fix | Delete
[1098] Fix | Delete
/**
[1099] Fix | Delete
* Serves as a callback for handling a menu item when its original object is deleted.
[1100] Fix | Delete
*
[1101] Fix | Delete
* @since 3.0.0
[1102] Fix | Delete
* @access private
[1103] Fix | Delete
*
[1104] Fix | Delete
* @param int $object_id The ID of the original object being trashed.
[1105] Fix | Delete
* @param int $tt_id Term taxonomy ID. Unused.
[1106] Fix | Delete
* @param string $taxonomy Taxonomy slug.
[1107] Fix | Delete
*/
[1108] Fix | Delete
function _wp_delete_tax_menu_item( $object_id, $tt_id, $taxonomy ) {
[1109] Fix | Delete
$object_id = (int) $object_id;
[1110] Fix | Delete
[1111] Fix | Delete
$menu_item_ids = wp_get_associated_nav_menu_items( $object_id, 'taxonomy', $taxonomy );
[1112] Fix | Delete
[1113] Fix | Delete
foreach ( (array) $menu_item_ids as $menu_item_id ) {
[1114] Fix | Delete
wp_delete_post( $menu_item_id, true );
[1115] Fix | Delete
}
[1116] Fix | Delete
}
[1117] Fix | Delete
[1118] Fix | Delete
/**
[1119] Fix | Delete
* Automatically add newly published page objects to menus with that as an option.
[1120] Fix | Delete
*
[1121] Fix | Delete
* @since 3.0.0
[1122] Fix | Delete
* @access private
[1123] Fix | Delete
*
[1124] Fix | Delete
* @param string $new_status The new status of the post object.
[1125] Fix | Delete
* @param string $old_status The old status of the post object.
[1126] Fix | Delete
* @param WP_Post $post The post object being transitioned from one status to another.
[1127] Fix | Delete
*/
[1128] Fix | Delete
function _wp_auto_add_pages_to_menu( $new_status, $old_status, $post ) {
[1129] Fix | Delete
if ( 'publish' !== $new_status || 'publish' === $old_status || 'page' !== $post->post_type ) {
[1130] Fix | Delete
return;
[1131] Fix | Delete
}
[1132] Fix | Delete
if ( ! empty( $post->post_parent ) ) {
[1133] Fix | Delete
return;
[1134] Fix | Delete
}
[1135] Fix | Delete
$auto_add = get_option( 'nav_menu_options' );
[1136] Fix | Delete
if ( empty( $auto_add ) || ! is_array( $auto_add ) || ! isset( $auto_add['auto_add'] ) ) {
[1137] Fix | Delete
return;
[1138] Fix | Delete
}
[1139] Fix | Delete
$auto_add = $auto_add['auto_add'];
[1140] Fix | Delete
if ( empty( $auto_add ) || ! is_array( $auto_add ) ) {
[1141] Fix | Delete
return;
[1142] Fix | Delete
}
[1143] Fix | Delete
[1144] Fix | Delete
$args = array(
[1145] Fix | Delete
'menu-item-object-id' => $post->ID,
[1146] Fix | Delete
'menu-item-object' => $post->post_type,
[1147] Fix | Delete
'menu-item-type' => 'post_type',
[1148] Fix | Delete
'menu-item-status' => 'publish',
[1149] Fix | Delete
);
[1150] Fix | Delete
[1151] Fix | Delete
foreach ( $auto_add as $menu_id ) {
[1152] Fix | Delete
$items = wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) );
[1153] Fix | Delete
if ( ! is_array( $items ) ) {
[1154] Fix | Delete
continue;
[1155] Fix | Delete
}
[1156] Fix | Delete
foreach ( $items as $item ) {
[1157] Fix | Delete
if ( $post->ID === (int) $item->object_id ) {
[1158] Fix | Delete
continue 2;
[1159] Fix | Delete
}
[1160] Fix | Delete
}
[1161] Fix | Delete
wp_update_nav_menu_item( $menu_id, 0, $args );
[1162] Fix | Delete
}
[1163] Fix | Delete
}
[1164] Fix | Delete
[1165] Fix | Delete
/**
[1166] Fix | Delete
* Deletes auto-draft posts associated with the supplied changeset.
[1167] Fix | Delete
*
[1168] Fix | Delete
* @since 4.8.0
[1169] Fix | Delete
* @access private
[1170] Fix | Delete
*
[1171] Fix | Delete
* @param int $post_id Post ID for the customize_changeset.
[1172] Fix | Delete
*/
[1173] Fix | Delete
function _wp_delete_customize_changeset_dependent_auto_drafts( $post_id ) {
[1174] Fix | Delete
$post = get_post( $post_id );
[1175] Fix | Delete
[1176] Fix | Delete
if ( ! $post || 'customize_changeset' !== $post->post_type ) {
[1177] Fix | Delete
return;
[1178] Fix | Delete
}
[1179] Fix | Delete
[1180] Fix | Delete
$data = json_decode( $post->post_content, true );
[1181] Fix | Delete
if ( empty( $data['nav_menus_created_posts']['value'] ) ) {
[1182] Fix | Delete
return;
[1183] Fix | Delete
}
[1184] Fix | Delete
remove_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
[1185] Fix | Delete
foreach ( $data['nav_menus_created_posts']['value'] as $stub_post_id ) {
[1186] Fix | Delete
if ( empty( $stub_post_id ) ) {
[1187] Fix | Delete
continue;
[1188] Fix | Delete
}
[1189] Fix | Delete
if ( 'auto-draft' === get_post_status( $stub_post_id ) ) {
[1190] Fix | Delete
wp_delete_post( $stub_post_id, true );
[1191] Fix | Delete
} elseif ( 'draft' === get_post_status( $stub_post_id ) ) {
[1192] Fix | Delete
wp_trash_post( $stub_post_id );
[1193] Fix | Delete
delete_post_meta( $stub_post_id, '_customize_changeset_uuid' );
[1194] Fix | Delete
}
[1195] Fix | Delete
}
[1196] Fix | Delete
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
[1197] Fix | Delete
}
[1198] Fix | Delete
[1199] Fix | Delete
/**
[1200] Fix | Delete
* Handles menu config after theme change.
[1201] Fix | Delete
*
[1202] Fix | Delete
* @access private
[1203] Fix | Delete
* @since 4.9.0
[1204] Fix | Delete
*/
[1205] Fix | Delete
function _wp_menus_changed() {
[1206] Fix | Delete
$old_nav_menu_locations = get_option( 'theme_switch_menu_locations', array() );
[1207] Fix | Delete
$new_nav_menu_locations = get_nav_menu_locations();
[1208] Fix | Delete
$mapped_nav_menu_locations = wp_map_nav_menu_locations( $new_nav_menu_locations, $old_nav_menu_locations );
[1209] Fix | Delete
[1210] Fix | Delete
set_theme_mod( 'nav_menu_locations', $mapped_nav_menu_locations );
[1211] Fix | Delete
delete_option( 'theme_switch_menu_locations' );
[1212] Fix | Delete
}
[1213] Fix | Delete
[1214] Fix | Delete
/**
[1215] Fix | Delete
* Maps nav menu locations according to assignments in previously active theme.
[1216] Fix | Delete
*
[1217] Fix | Delete
* @since 4.9.0
[1218] Fix | Delete
*
[1219] Fix | Delete
* @param array $new_nav_menu_locations New nav menu locations assignments.
[1220] Fix | Delete
* @param array $old_nav_menu_locations Old nav menu locations assignments.
[1221] Fix | Delete
* @return array Nav menus mapped to new nav menu locations.
[1222] Fix | Delete
*/
[1223] Fix | Delete
function wp_map_nav_menu_locations( $new_nav_menu_locations, $old_nav_menu_locations ) {
[1224] Fix | Delete
$registered_nav_menus = get_registered_nav_menus();
[1225] Fix | Delete
$new_nav_menu_locations = array_intersect_key( $new_nav_menu_locations, $registered_nav_menus );
[1226] Fix | Delete
[1227] Fix | Delete
// Short-circuit if there are no old nav menu location assignments to map.
[1228] Fix | Delete
if ( empty( $old_nav_menu_locations ) ) {
[1229] Fix | Delete
return $new_nav_menu_locations;
[1230] Fix | Delete
}
[1231] Fix | Delete
[1232] Fix | Delete
// If old and new theme have just one location, map it and we're done.
[1233] Fix | Delete
if ( 1 === count( $old_nav_menu_locations ) && 1 === count( $registered_nav_menus ) ) {
[1234] Fix | Delete
$new_nav_menu_locations[ key( $registered_nav_menus ) ] = array_pop( $old_nav_menu_locations );
[1235] Fix | Delete
return $new_nav_menu_locations;
[1236] Fix | Delete
}
[1237] Fix | Delete
[1238] Fix | Delete
$old_locations = array_keys( $old_nav_menu_locations );
[1239] Fix | Delete
[1240] Fix | Delete
// Map locations with the same slug.
[1241] Fix | Delete
foreach ( $registered_nav_menus as $location => $name ) {
[1242] Fix | Delete
if ( in_array( $location, $old_locations, true ) ) {
[1243] Fix | Delete
$new_nav_menu_locations[ $location ] = $old_nav_menu_locations[ $location ];
[1244] Fix | Delete
unset( $old_nav_menu_locations[ $location ] );
[1245] Fix | Delete
}
[1246] Fix | Delete
}
[1247] Fix | Delete
[1248] Fix | Delete
// If there are no old nav menu locations left, then we're done.
[1249] Fix | Delete
if ( empty( $old_nav_menu_locations ) ) {
[1250] Fix | Delete
return $new_nav_menu_locations;
[1251] Fix | Delete
}
[1252] Fix | Delete
[1253] Fix | Delete
/*
[1254] Fix | Delete
* If old and new theme both have locations that contain phrases
[1255] Fix | Delete
* from within the same group, make an educated guess and map it.
[1256] Fix | Delete
*/
[1257] Fix | Delete
$common_slug_groups = array(
[1258] Fix | Delete
array( 'primary', 'menu-1', 'main', 'header', 'navigation', 'top' ),
[1259] Fix | Delete
array( 'secondary', 'menu-2', 'footer', 'subsidiary', 'bottom' ),
[1260] Fix | Delete
array( 'social' ),
[1261] Fix | Delete
);
[1262] Fix | Delete
[1263] Fix | Delete
// Go through each group...
[1264] Fix | Delete
foreach ( $common_slug_groups as $slug_group ) {
[1265] Fix | Delete
[1266] Fix | Delete
// ...and see if any of these slugs...
[1267] Fix | Delete
foreach ( $slug_group as $slug ) {
[1268] Fix | Delete
[1269] Fix | Delete
// ...and any of the new menu locations...
[1270] Fix | Delete
foreach ( $registered_nav_menus as $new_location => $name ) {
[1271] Fix | Delete
[1272] Fix | Delete
// ...actually match!
[1273] Fix | Delete
if ( is_string( $new_location ) && false === stripos( $new_location, $slug ) && false === stripos( $slug, $new_location ) ) {
[1274] Fix | Delete
continue;
[1275] Fix | Delete
} elseif ( is_numeric( $new_location ) && $new_location !== $slug ) {
[1276] Fix | Delete
continue;
[1277] Fix | Delete
}
[1278] Fix | Delete
[1279] Fix | Delete
// Then see if any of the old locations...
[1280] Fix | Delete
foreach ( $old_nav_menu_locations as $location => $menu_id ) {
[1281] Fix | Delete
[1282] Fix | Delete
// ...and any slug in the same group...
[1283] Fix | Delete
foreach ( $slug_group as $slug ) {
[1284] Fix | Delete
[1285] Fix | Delete
// ... have a match as well.
[1286] Fix | Delete
if ( is_string( $location ) && false === stripos( $location, $slug ) && false === stripos( $slug, $location ) ) {
[1287] Fix | Delete
continue;
[1288] Fix | Delete
} elseif ( is_numeric( $location ) && $location !== $slug ) {
[1289] Fix | Delete
continue;
[1290] Fix | Delete
}
[1291] Fix | Delete
[1292] Fix | Delete
// Make sure this location wasn't mapped and removed previously.
[1293] Fix | Delete
if ( ! empty( $old_nav_menu_locations[ $location ] ) ) {
[1294] Fix | Delete
[1295] Fix | Delete
// We have a match that can be mapped!
[1296] Fix | Delete
$new_nav_menu_locations[ $new_location ] = $old_nav_menu_locations[ $location ];
[1297] Fix | Delete
[1298] Fix | Delete
// Remove the mapped location so it can't be mapped again.
[1299] Fix | Delete
unset( $old_nav_menu_locations[ $location ] );
[1300] Fix | Delete
[1301] Fix | Delete
// Go back and check the next new menu location.
[1302] Fix | Delete
continue 3;
[1303] Fix | Delete
}
[1304] Fix | Delete
} // End foreach ( $slug_group as $slug ).
[1305] Fix | Delete
} // End foreach ( $old_nav_menu_locations as $location => $menu_id ).
[1306] Fix | Delete
} // End foreach foreach ( $registered_nav_menus as $new_location => $name ).
[1307] Fix | Delete
} // End foreach ( $slug_group as $slug ).
[1308] Fix | Delete
} // End foreach ( $common_slug_groups as $slug_group ).
[1309] Fix | Delete
[1310] Fix | Delete
return $new_nav_menu_locations;
[1311] Fix | Delete
}
[1312] Fix | Delete
[1313] Fix | Delete
/**
[1314] Fix | Delete
* Prevents menu items from being their own parent.
[1315] Fix | Delete
*
[1316] Fix | Delete
* Resets menu_item_parent to 0 when the parent is set to the item itself.
[1317] Fix | Delete
* For use before saving `_menu_item_menu_item_parent` in nav-menus.php.
[1318] Fix | Delete
*
[1319] Fix | Delete
* @since 6.2.0
[1320] Fix | Delete
* @access private
[1321] Fix | Delete
*
[1322] Fix | Delete
* @param array $menu_item_data The menu item data array.
[1323] Fix | Delete
* @return array The menu item data with reset menu_item_parent.
[1324] Fix | Delete
*/
[1325] Fix | Delete
function _wp_reset_invalid_menu_item_parent( $menu_item_data ) {
[1326] Fix | Delete
if ( ! is_array( $menu_item_data ) ) {
[1327] Fix | Delete
return $menu_item_data;
[1328] Fix | Delete
}
[1329] Fix | Delete
[1330] Fix | Delete
if (
[1331] Fix | Delete
! empty( $menu_item_data['ID'] ) &&
[1332] Fix | Delete
! empty( $menu_item_data['menu_item_parent'] ) &&
[1333] Fix | Delete
(int) $menu_item_data['ID'] === (int) $menu_item_data['menu_item_parent']
[1334] Fix | Delete
) {
[1335] Fix | Delete
$menu_item_data['menu_item_parent'] = 0;
[1336] Fix | Delete
}
[1337] Fix | Delete
[1338] Fix | Delete
return $menu_item_data;
[1339] Fix | Delete
}
[1340] Fix | Delete
[1341] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function