如何解决将下拉菜单仅应用于主菜单,然后列出没有下拉菜单的子菜单
实现保持第一个导航栏下拉菜单然后摆脱所有尾随水平的最佳方法是什么?因此,我想将navbar-dropdown
保留在主菜单上,但将所有子菜单都列出来。
我还希望将has-dropdown is-hoverable
保留在主菜单级别上,并在所有子菜单中删除它。
这是我当前的Navwalker的外观:
class Navwalker extends Walker_Nav_Menu {
public function start_lvl( &$output,$depth = 0,$args = array() ) {
$output .= "<div class='navbar-dropdown'>";
}
public function start_el( &$output,$item,$args = array(),$id = 0 ) {
// Add your custom item classes here
$custom_classes_from_menu = implode(' ',$item->classes); // turn the WP classes object array to string values
$liClasses = 'navbar-item ' . $custom_classes_from_menu; // add the values to your classes list
$hasChildren = $args->walker->has_children;
$liClasses .= $hasChildren? " has-dropdown is-hoverable": "";
if($hasChildren){
$output .= "<div class='".$liClasses."'>";
$output .= "\n<a class='navbar-link' href='".$item->url."'>".$item->title."</a>";
}
else {
$output .= "<a class='".$liClasses."' href='".$item->url."'>".$item->title;
}
// Adds has_children class to the item so end_el can determine if the current element has children
if ( $hasChildren ) {
$item->classes[] = 'has_children';
}
}
public function end_el(&$output,$id = 0 ){
if(in_array("has_children",$item->classes)) {
$output .= "</div>";
}
$output .= "</a>";
}
public function end_lvl (&$output,$args = array()) {
$output .= "</div>";
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。