WordPress Version: 6.2
/**
* Prevents menu items from being their own parent.
*
* Resets menu_item_parent to 0 when the parent is set to the item itself.
* For use before saving `_menu_item_menu_item_parent` in nav-menus.php.
*
* @since 6.2.0
* @access private
*
* @param array $menu_item_data The menu item data array.
* @return array The menu item data with reset menu_item_parent.
*/
function _wp_reset_invalid_menu_item_parent($menu_item_data)
{
if (!is_array($menu_item_data)) {
return $menu_item_data;
}
if (!empty($menu_item_data['ID']) && !empty($menu_item_data['menu_item_parent']) && (int) $menu_item_data['ID'] === (int) $menu_item_data['menu_item_parent']) {
$menu_item_data['menu_item_parent'] = 0;
}
return $menu_item_data;
}