如何解决WordPress:如果存在子链接,则创建自定义菜单并生成标记
我目前正在编写一个 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>
<!-- 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 举报,一经查实,本站将立刻删除。