[英]Drupal theme preprocess function - primary links
我最近編寫了一個主題函數,將一個類添加到我的主要鏈接中。 然后我寫了一些css類來設置這些鏈接與自定義背景圖像的樣式。 工作得很好。 現在問題出現了,仍然顯示主鏈接的鏈接文本。 通常這不是問題,因為我只需用自定義“隱藏”類包裝。 例如:
<span class="hide"><a href="#">Link Text</a></span>
所以我的問題是如何循環主鏈接並用像我的例子一樣用<span>
包裝文本? 這是我用來添加課程的主題函數。
function zkc_preprocess_page(&$vars, $hook) {
// Make a shortcut for the primary links variables
$primary_links = $vars['primary_links'];
// Loop thru the menu, adding a new class for CSS selectors
$i = 1;
foreach ($primary_links as $link => $attributes){
// Append the new class to existing classes for each menu item
$class = $attributes['attributes']['class'] . " item-$i";
// Add revised classes back to the primary links temp variable
$primary_links[$link]['$attributes']['class'] = $class;
$i++;
} // end the foreach loop
// reset the variable to contain the new markup
$vars['primary_links'] = $primary_links;
}
jQuery是一個選項嗎?
嘗試這樣的事情:
$(document).ready(function(){
$('#primary li a')
.wrapInner('<span class="hide">' + '</span>');
});
編輯:
或者如果你想去Drupal,把這個人放在你的foreach循環中:
$link['title'] = '<span class="hide">' . check_plain($link['title']) . '</span>';
如果您只想隱藏鏈接文本,為什么不使用text-indent: -9999px;
?
用於改變菜單鏈接輸出的正確方法可以在主題層完成。 你在使用預處理鈎子的正確道路上,但還有一點。
有關更多信息,請參閱此處:
錯字?
$primary_links[$link]['$attributes']['class'] = $class;
應該讀;
$primary_links[$link]['attributes']['class'] = $class;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.