Если вы хотите выборочно удалять вкладки динамическим способом (например, один узел получает вкладку, а другой нет), вы не сможете использовать hook_menu_alter (), потому что это действует только тогда, когда кэш менюстроится.Однако вы можете сделать это, переопределив обратный вызов доступа к меню.Если доступ к вкладке запрещен, она не будет отображаться.
Например, чтобы переопределить вкладку узла, вы можете сделать что-то вроде этого:
function mymodule_menu_alter(&$items) {
$item['node/%node/foo']['access callback'] = 'mymodule_override_access';
}
function mymodule_override_access($node) {
// Perform queries, logic, etc to determine if content exists at node/nid/foo.
// Return false if there is no content, otherwise fall through to the original
// access callback function.
}