I have a menu:

 - Child-1-1
 - Child-1-2
 - Child-1-3
 - another_child
 - Child-2-1
 - Child-2-2
 - another_child

I needed change the name of Parent-2 item (Parent-2 text is unique), I did it with hook_link_alter() hook:

 * Implements hook_link_alter().
function MY_MODULE_link_alter(&$variables) {
  if ($variables['text'] == 'Parent-2') {
     $variables['text'] = t('New name');

I need too to change the names of all child of Parent-2 dynamically. I can't do it with hook_link_alter() hook because in my example there is two elements(another_child) with the same name. Those changes must not be saved in database.

How can I do this?

1 Answer 1


I can do it implementing hook_preprocess_HOOK hook, specifically hook_preprocess_superfish:

 * Implements hook_preprocess_HOOK().
function MODULE_NAME_preprocess_superfish(&$variables) {
  if ($variables['id'] == 'superfish-main-menu') {
    $menu = ($variables['element']['#tree']);
    // ...
  • 1
    Thank you for your -1 vote, no explanation and no solution about the issue.
    – rpayanm
    Commented Nov 29, 2017 at 13:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.