diff --git a/core/modules/menu_link_content/menu_link_content.module b/core/modules/menu_link_content/menu_link_content.module index 00d1eac..71944d0 100644 --- a/core/modules/menu_link_content/menu_link_content.module +++ b/core/modules/menu_link_content/menu_link_content.module @@ -42,16 +42,18 @@ function menu_link_content_menu_delete(MenuInterface $menu) { * Implements hook_entity_predelete() for node entities. */ function menu_link_content_entity_predelete(EntityInterface $entity) { - $entity_url = $entity->urlInfo(); - // Delete all MenuLinkContent links that point to this entity. /** @var \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager */ $menu_link_manager = \Drupal::service('plugin.manager.menu.link'); - $result = $menu_link_manager->loadLinksByRoute($entity_url->getRouteName(), $entity_url->getRouteParameters()); + foreach ($entity->uriRelationships() as $rel) { + $url = $entity->urlInfo($rel); + // Delete all MenuLinkContent links that point to this entity route. + $result = $menu_link_manager->loadLinksByRoute($url->getRouteName(), $url->getRouteParameters()); - if (!empty($result)) { - foreach ($result as $id => $instance) { - if ($instance->isDeletable() && strpos($id, 'menu_link_content:') === 0) { - $instance->deleteLink(); + if ($result) { + foreach ($result as $id => $instance) { + if ($instance->isDeletable() && strpos($id, 'menu_link_content:') === 0) { + $instance->deleteLink(); + } } } }