我想弄清楚如何將span標記添加到自定義菜單中的某個菜單鏈接。我只需要在自定義菜單鏈接中的一個鏈接上。猜測一個預處理函數,並試圖運行沒有運氣,沒有出現它被調用。如何將span標籤添加到Drupal 7中的某個自定義菜單鏈接?
5
A
回答
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
。
相關問題
- 1. 將span標籤添加到ruby鏈接?
- 2. 如何將span標籤添加到Drupal webform元素標籤中?
- 3. Drupal 7將自定義菜單添加到頁面
- 4. 將自定義菜單添加到drupal 7
- 5. Drupal添加外部鏈接到自定義菜單
- 6. 如何在自定義標籤中添加共享鏈接菜單
- 7. Android Chrome自定義標籤添加複製鏈接到選項菜單
- 8. Drupal 7的自定義主菜單
- 9. 如何添加一個帶空導航標籤的自定義鏈接到WordPress的菜單?
- 10. 將Span標籤添加到CI表單標籤標籤
- 11. Drupal 7自定義naviagtion菜單
- 12. Drupal 7自定義主菜單
- 13. 如何自定義drupal 7中主菜單的輸出?
- 14. 如何在Drupal 7中添加自定義字段到塊?
- 15. 如何將菜單鏈接添加到菜單的最右側
- 16. 如何在Ruby中爲此鏈接類型添加span標籤?
- 17. Drupal 7中的自定義移動菜單無法訪問子鏈接
- 18. 如何更改Drupal 7中的自定義鏈接?
- 19. Drupal:如何添加菜單鏈接到密碼更改?
- 20. 如何將JavaScript添加到drupal 7中的單個節點?
- 21. 在wordpress中添加自定義固定鏈接標籤
- 22. knp菜單包 - 如何將標籤添加到標籤?
- 23. Drupal模塊將菜單項添加到主鏈接?
- 24. 如何將我自己的自定義內容添加到drupal 7區域?
- 25. 如何將自定義菜單鏈接到author.php
- 26. 自定義菜單鏈接描述
- 27. Drupal 7中的樣式菜單塊的菜單鏈接
- 28. CCK字段添加到自定義表單在Drupal 7
- 29. 如何將圖標添加到Excel中的自定義菜單 - vba
- 30. 如何在Ckeditor中添加span標籤?
這不適合我。這個鉤子沒有被找到。它在我的template.php文件中。 – weaveoftheride
@weaveoftheride檢查函數名稱,例如'THEMENAME_menu_link'並清除緩存以重新加載註冊表。 – kenorb
我正在使用超級魚,所以我應該使用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