2012-11-20 45 views

回答

1

找到答案!需要使用theme_menu_link()

function theme_menu_link(array $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"; 
} 

http://api.drupal.org/api/drupal/includes%21menu.inc/function/theme_menu_link/7

在那裏,我可以找到我要找的項目,並相應調整。

6

找到下面的解決方案。

請注意,如果您使用的是Superfish模塊,則theme_menu_link()在這種情況下將不起作用,因此請改用theme_superfish_menu_item_link

的Drupal 7

/* 
* Implements theme_menu_link(). 
*/ 
function THEME_menu_link(array $variables) { 
    $element = $variables['element']; 
    $sub_menu = ''; 

    if ($element['#below']) { 
    $sub_menu = drupal_render($element['#below']); 
    } 

    $element['#localized_options']['html'] = TRUE; 
    $linktext = '<span class="tab-inner">' . $element['#title'] . '</span>'; 

    $output = l($linktext, $element['#href'], $element['#localized_options']); 
    return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; 
} 

的Drupal 7(與快魚)

/* 
* Implements theme_superfish_menu_item_link(). 
* Theme a superfish menu item link, 
* to override menu item to insert span tags 
*/ 
function THEME_superfish_menu_item_link(array $variables) { 
    $menu_item = $variables['menu_item']; 
    $link_options = $variables['link_options'] + array('html' => TRUE); 
    $linktext = '<span class="tab-inner">' . $menu_item['link']['title'] . '</span>'; 
    return l($linktext, $menu_item['link']['link_path'], $link_options); 
} 

以上掛鉤的定義後,清除緩存重建主題註冊表。

如果以上都不行,由@weaveoftheride建議,請務必使使用超鏈接使用在設置菜單項主題功能主題功能。通常這些應該默認啓用。

的Drupal 6(僅供參考)

/* 
* Implements theme_menu_item_link(). 
*/ 
function THEME_menu_item_link($link) { 
    if (empty($link['localized_options'])) { 
    $link['localized_options'] = array(); 
    } 
    $link['localized_options'] += array('html'=>true); 
    return l('<span>'.$link['title'].'</span>', $link['href'], $link['localized_options']); 
} 

注:請不要忘記,在所有上面的代碼中你的主題你的機器名來替換THEME

+0

這不適合我。這個鉤子沒有被找到。它在我的template.php文件中。 – weaveoftheride

+0

@weaveoftheride檢查函數名稱,例如'THEMENAME_menu_link'並清除緩存以重新加載註冊表。 – kenorb

+0

我正在使用超級魚,所以我應該使用theme_superfish_menu_item_link我想?另外我的菜單是在一個塊。這有什麼區別嗎?函數nph_superfish_menu_item_link($變量)dpm(「BLAH」); $ menu_item = $ variables ['menu_item']; $ link_options = $ variables ['link_options']; return l($ menu_item ['link'] ['title'],$ menu_item ['link'] ['href'],$ link_options); } – weaveoftheride

相關問題