Para criar um tema para a lista não ordenada, você precisa chamar theme_menu_tree (). Você pode editar seu template.php para chamar isso.
function THEMENAME_menu_tree__MENUNAME($variables){
return '<ul class="your-custom-class" id="your-custom-id">' . $variables['tree'] . '</ul>';
}
Então, se você deseja colocar um tema em seus links, chame theme_menu_link ().
function THEMENAME_menu_link__MENUNAME($variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
Agora, o problema com o Drupal 7 é que há um erro grave na exibição da trilha ativa dos menus personalizados.
Veja a edição
# 520106 - Não há maneira de definir dinamicamente a trilha ativa
Edição # 942782 - Os menus personalizados nunca recebem uma trilha ativa
Você está basicamente sem sorte se quiser alguns menus personalizados verdadeiros. Essas questões existem há muito tempo na comunidade drupal, por isso não tenho certeza se elas serão corrigidas em breve. Não sei se existe algum PHP que possa ajudar com isso. Você pode recorrer a alguns módulos alternativos para facilitar a funcionalidade, como Atributos de Menu e Bloco de Menu . Ambos podem ajudar a contornar o sistema de menus do Drupal 7.