问题描述
我目前正在编写一个 extends
WordPress' Walker_Nav_Menu
函数。
创建此 walker
是因为我正在尝试创建多级汉堡菜单。
这是我开始制作汉堡的方式:
<div class="hamburgerMenu__menu">
<?php
wp_nav_menu([
'menu' => 'hamburger','theme_location' => 'hamburger','container' => '','depth' => 4,'fallback_cb' => false,"walker" => new hamburger_walker(),]);
?>
</div>
这是我目前在 WordPress 中配置菜单的方式:
考虑到上面的菜单,我试图生成的标记是这样的:
<!-- for links with no children -->
<li class="parent_link"><label><a href="#">Link 1</a></label></li>
<!-- for links with children -->
<li>
<label class="chevron" for="item-2">Link 2</label>
<input type="checkbox" id="item-2" name="item-2" class="checkbox">
<div class="m-menu">
<div class="m-menu__header">
<label class="m-menu__toggle" for="item-2">back</label>
<span>Link 2</span>
</div>
<ul>
<li><label>Link 2.1</label></li>
<li><label>Link 2.2</label></li>
</ul>
</div>
</li>
为了实现上述目标,我在 functions.php
中设置了以下内容:
class hamburger_walker extends Walker_Nav_Menu {
function start_el(&$output,$item,$depth=0,$args=array(),$id = 0) {
$object = $item->object;
$type = $item->type;
$title = $item->title;
$permalink = $item->url;
$output .= "<li class='parent_link " . implode(" ",$item->classes) . "'>";
//Add span if no permalink
if( $permalink && $permalink != '#' ) {
$output .= '<a href="' . $permalink . '">';
} else {
$output .= '<span>';
}
$output .= $title;
if( $permalink && $permalink != '#' ) {
$output .= '</a>';
} else {
$output .= '</span>';
}
}
}
但是,不确定如何以及什么可以在此函数中解析为检查以显示与子项的链接的不同标记?
我怎样才能用这个汉堡包实现我想要的标记,或者还有其他更简单的方法来实现这个目标?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)