WordPress菜单问题-如果有子链接,则参与者不会点击

时间:2019-08-07 作者:eLGusto

我在这个网站上工作是为了我自己的业务,当我创建一个带有子链接的菜单时,如下图所示,这是下拉菜单的最后一个子菜单,它实际上会单击并加载一个页面。

enter image description here

enter image description here

如果我单击指向最后一个子“1帮”的任何父链接,这些链接都不会起作用。

enter image description here

但如果我用该路径键入完整的URL,http://x.x.x.x/test-products-only/ 或其后的两个子级中的任何一个子级,页面加载并显示类别组。

所以页面并不是被禁用的,似乎父母得到了noclick属性之类的东西。

我没有触及代码,因为它只是创建了几个页面,然后从外观>菜单创建了菜单。

如有任何建议,不胜感激。

干杯

3 个回复
SO网友:user3135691

首先,您需要检查当前使用的主题。然后,您需要确保主题的菜单支持您正在使用的对象的深度。

所谓的wp_nav_walker() (这是一个内置的WordPress PHP类)是函数/类,它在前端构建菜单。

如果菜单遍历器不支持数组参数depth => 4, 然后菜单无法输出此深度的菜单。

您的菜单中断可能还有其他原因,但这就是我处理此问题的方式。

您可能想进一步了解WordPress menu walker here.

YouTube上还有一个关于菜单navwalker的很棒的教程,我强烈建议您了解引擎盖下的情况。

请参阅此链接:Menu Nav Walker

由于您只是含糊其辞地提到可能需要更改代码,我建议您联系主题开发人员,询问菜单是否支持这种菜单结构。

如果您能够编码,请观看视频并用自己的覆盖默认菜单wp\\U nav\\U walker,并确保html输出支持4级ul li>ul li>ul li>ul li。

您还可以尝试从GitHub实现/重写Navwalker,例如:

Git Twittem Navwalker for Bootstrap 4

请注意,此输出是为css框架引导程序生成的。

SO网友:eLGusto

谢谢你这么说。它没有任何深度。但你可能会发现什么。这是我在主题中找到的与“步行者”课程相关的内容。

如果我在浏览器中查看加载的代码,我会看到该子级的有一个“not click”类。

class smarthome_top_bar_walker extends Walker_Nav_Menu {

static protected $menu_bg_test;
function start_el(&$output, $item, $depth = 0, $args = Array(), $id = 0) {

    $smarthome_class = "";
  if(is_object($args)){
        global $smarthome_count;
        $icon=$item->classes[1];
    if($item->mega_menu == 1) {
        $smarthome_class= \'wd_mega-menu\';
    }
    $smarthome_icon = $item->mega_menu_icon ;
    self::$menu_bg_test = $item->mega_menu_bg_image;
        $indent = ($depth) ? str_repeat("\\t", $depth) : \'\';
        $class_names = $value = \'\';

        $classes = empty($item -> classes) ? array() : (array)$item -> classes;
        $classes[] = ($item -> current) ? \'active\' : \'\';
        $classes[] = ($args -> has_children) ? \' color-1 has-dropdown not-click\' : \'\';
        $args -> link_before = (in_array(\'section\', $classes)) ? \'<label>\' : \'\';
        $args -> link_after = (in_array(\'section\', $classes)) ? \'</label>\' : \'\';
        $output .= (in_array(\'section\', $classes));
        $class_names = ($args -> has_children) ? \'has-dropdown not-click \'.$smarthome_class : \'\';
        $parent = $item -> menu_item_parent;
        if ($parent == 0) {
          $smarthome_count++;
        }

        $current_page = empty($item->classes[4]) ? \'\' : $item->classes[4];
        $class_names .= \' color-\' . $smarthome_count .\' \'. $current_page ;
        $class_names = strlen(trim($class_names)) > 0 ? \' class="\' . esc_attr($class_names) . \'"\' : \'\';
        $output .= $indent . \'
        <li id="menu-item-\' . $item -> ID . \'"\' . $value . $class_names  . \'>\';

        $attributes = !empty($item -> attr_title) ? \' title="\' . esc_attr($item -> attr_title) . \'"\' : \'\';
        $attributes .= !empty($item -> target) ? \' target="\' . esc_attr($item -> target) . \'"\' : \'\';
        $attributes .= !empty($item -> xfn) ? \' rel="\' . esc_attr($item -> xfn) . \'"\' : \'\';
        $attributes .= !empty($item -> url) ? \' href="\' . esc_url($item -> url) . \'"\' : \'\';

        $attributes .= \' class="has-icon"\';

        $item_output = $args -> before;
        $item_output .= (!in_array(\'section\', $classes)) ? \'
        <a\' . $attributes . \'>\' : \'\';
        if(($icon != \'\') and ($icon != \'---- None ----\'))  {

        $item_output .= \'<i class="\'.$smarthome_icon.\' fa"></i> \';
        }
        $item_output .= $args -> link_before . apply_filters(\'the_title\', $item -> title, $item -> ID);
        $item_output .= $args -> link_after;
        $item_output .= (!in_array(\'section\', $classes)) ? \'</a>\' : \'\';
        $item_output .= $args -> after;


        $output .= apply_filters(\'walker_nav_menu_start_el\', $item_output, $item, $depth, $args);
    }


}

SO网友:WPTricksDK

现在我不确定您使用的是什么主题,但它可能在菜单设置中。尽管您无法查看菜单的所有设置,但除非您在屏幕选项中激活它们(位于控制面板右上角-请参见下图):

enter image description here

有时,一些额外的菜单选项会隐藏在此处,默认情况下,它们会被停用。它们将位于“Show advanced menu properties“-如果是,请激活它们,当您编辑菜单项时,您可能会找到更多选项,如下图所示:

enter image description here

如果没有选项,那么恐怕您必须使用WordPress菜单步行器自定义菜单,正如用户3135691所提到的那样。

祝你好运-我希望你可以通过使用设置来修复它,并节省一些时间。

相关推荐

Get Menus In Header.php FIle

你好,我是WordPress的初学者。我试图在主页中获取菜单,但它没有按照html主题显示。这是我的密码。。<div class=\"collapse navbar-collapse nav-wil\" id=\"bs-example-navbar-collapse-1\"> <div class=\"top-menu\"> <nav class=\"menu menu--francisco\"> <div class=