【发布时间】:2014-01-20 15:09:03
【问题描述】:
我刚开始使用 WP 主题,但我坚持使用 walker 类。我正在尝试输出以下代码:
<ul>
<li><a href="#" title="">Menu 1</a></li>
<li><a href="#" title="">Menu 2</a></li>
<li class="hasDropdown">
<a href="#" title="">Menu 3 - Level 1</a>
<div>
<div>
<h5>Description 1</h5>
<ul>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
</ul>
</div>
<div>
<h5>Description 2</h5>
<ul>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
</ul>
</div>
<div>
<h5>Description 3</h5>
<ul>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
</ul>
</div>
<div>
<h5>Description 4</h5>
<ul>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
<li><a href="#" title="">Menu 3 - Level 2</a></li>
</ul>
</div>
</div>
</li>
<li><a href="#" title="">Menu 4</a></li>
<li><a href="#" title="">Menu 5</a></li>
我已经阅读了很多关于 walker 类的文章,但每篇文章都只做了我想做的一小部分。我想把它们放在一起并得到更好的理解。我不确定如何开始/结束和设置具有下拉级别的菜单。请问有人可以帮忙吗?非常感谢。
我已尝试复制和修改在 nav-menu-template 中找到的 walker 类,如下所示:
function start_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat("\t", $depth);
$output .= "\n$indent<div>\n";
$output .= "\n$indent<h5></h5>\n";
$output .= "\n$indent<ul class=\"sub-menu\">\n";
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
$indent = str_repeat("\t", $depth);
$output .= "$indent</ul>\n";
$output .= "\n$indent</div>\n";
}
这给了我:
<div><h5><ul>
我很难理解如何实现包装 div 和 .hasDropdown
【问题讨论】:
-
您能告诉我们到目前为止您尝试了哪些步骤吗?
-
@Dutchie 我提供了一个我在上面取得了最大成功的例子。我已经尝试了很多其他的类自定义,但最终得到了一些非常奇怪的结果,与我想要的完全不同。