Published
Apr 1, 2025
Updated
Apr 1, 2025
To remove the delete tab in Drupal 10.4.X on all nodes you can use this code in a custom module.
<?php
use Drupal\Core\Url;
/**
* Implements hook_menu_local_tasks_alter().
*/
function custom_theme_menu_local_tasks_alter(&$data, $route_name, $route_parameters) {
// Check if we're on a node page.
if (strpos($route_name, 'entity.node.') === 0 && !empty($data['tabs'])) {
foreach ($data['tabs'] as $group => &$tab_set) {
foreach ($tab_set as $key => &$tab) {
$url = $tab['#link']['url'] ?? NULL;
if ($url instanceof Url && $url->getRouteName() === 'entity.node.delete_form') {
unset($tab_set[$key]);
}
}
// Re-index the array to avoid gaps.
$tab_set = array_values($tab_set);
}
}
}