Want to add span elements to menu, change ul id or add classes? Need images in menu or some custom style? You can do that by using menu_link for menu items and menu_tree hook for menus itself. To replace all menus remove __MENUNAME.
// Customize menu li & links function MYTHEME_menu_link__MENUNAME($variables) { $element = $variables['element']; $sub_menu = ''; if ($element['#below']) { $sub_menu = drupal_render($element['#below']); } // Enable this to use html in title, eg img, span or something else... $element['#localized_options']['html'] = true; $link = l('<span>' . $element['#title'] . '</span>', $element['#href'], $element['#localized_options']); return '<li' . drupal_attributes($element['#attributes']) . '>' . $link . $sub_menu . "</li>\n"; } // Customize menu ul function MYTHEME_menu_tree__MENUNAME($variables) { // Change id of menu ul return '<ul id="my-custom-menu-id">' . $variables['tree'] . '</ul>'; }
You can probably use preprocess_menu_link or preprocess_links as well, but this seems to be easiest way. Read more about it here.
Leave a Reply
You must be logged in to post a comment.