次のようなメニューがあります。
<ul class="subpagemenu">
<li><a href="xx">xx</a>
<ul>
<li><a href="xx">xx</a></li>
</ul>
</li>
<li><a href="xx">xx</a></li>
</ul>
最初のulにはクラスがあり、サブメニューulにはないことがわかります。
このコードを使用して、クラスをulに追加しています。
function mytheme_menu_tree__menu_mymenu($variables) {
return '<ul class="subpagemenu">' . $variables['tree'] . '</ul>';
}
ただし、そのクラスはすべてのサブメニューに追加されます。
<ul class="subpagemenu">
<li><a href="xx">xx</a>
<ul class="subpagemenu">
<li><a href="xx">xx</a></li>
</ul>
</li>
<li><a href="xx">xx</a></li>
</ul>
サブメニューにテーマを設定する方法はありますか?ありがとうございました。
function mytheme_menu_tree__menu_mymenu($variables) {
return '<ul class="subpagemenu">' . $variables['tree'] . '</ul>';
}
function mytheme_menu_tree__menu_mymenu_second($variables) {
return '<ul>' . $variables['tree'] . '</ul>';
}
function mytheme_menu_link__menu_mymenu($variables) {
$element = $variables['element'];
$submenu = '';
if ($element['#below']) {
// You can set a theme wrapper here or put an empty array() only
// and theme the second level directly by adding <ul></ul> one line below.
$element['#below']['#theme_wrappers'] = array('menu_tree__menu_mymenu_second');
$submenu = drupal_render($element['#below']);
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $submenu . "</li>\n";
}