添加子菜单项使父项不可点击

时间:2019-01-09 作者:jarrodwhitley

不幸的是,我没有办法重现这一点,因为我不知道是什么导致了这个问题,但我可以提供大量的细节。问题是:

在导航栏中,父菜单项本身可以很好地工作,但只要我在其下方添加子菜单项,父菜单项就变得不可访问。

我假设父项顶部一定有一些不可见的元素阻止我单击它。据我所知,父项顶部没有元素display:none;. 没有变化我找到的唯一修复方法是删除子菜单项,这样我知道它必须与它们相关,但如果子菜单显示了其他什么可能会使父项不可访问?

我没有主意了。还有什么可能导致这种行为?

2 个回复
最合适的回答,由SO网友:mrben522 整理而成

问题是javascript针对menu-item-has-children 类并向click事件添加preventDefault。非常标准的东西,但当它不是一个选项时,你可以选择关闭它。

SO网友:Rohit Kaushik

使用此插件在父级上添加链接

<?php 
/*
Plugin Name: Menu Link
Description: Quick Custom Solution Plugin for Implementing Custom Solution.
Version: 1.0.0
Author: Rohit Kauhsik
Author URI: https://in.linkedin.com/in/rohit-kaushik-108a2383
License: GNU General Public License (Version 2 - GPLv2)
*/

function  custom_nav_menu_link_attributes( $atts, $item, $args ){
  if ( !wp_is_mobile() && $args->has_children  ) {
            $atts[\'href\'] = ! empty( $item->url ) ? $item->url : \'\';
    }
  return $atts;
}
add_filter( \'nav_menu_link_attributes\', \'custom_nav_menu_link_attributes\', 99, 3 );

function func_make_menu_clickable(){
if ( !wp_is_mobile() ) { ?>
  <script type="text/javascript">
    jQuery(document).ready(function($){      
      if($(window).width() >= 767){
        $(\'li.menu-item a\').click(function(){
          window.location = $(this).attr(\'href\');
        });
      }
    });
  </script>
  <style type="text/css">
  @media all and (min-width: 767px) {
  .menu-item-has-children:hover > ul {
  display: block;
}
}
  </style>
<?php }
}
add_action(\'wp_footer\', \'func_make_menu_clickable\', 1);

相关推荐

用标准的干净文件替换NAV-menus.php文件?

我是一个自学成才的wordpress网站设计师,请原谅我的无知。我为一个客户开发的几个网站最近被一个印尼黑客组织破坏了(很有趣!)。客户端没有更新wordpress安装和其他一些危及安全的事情。遗憾的是,没有网站的清理备份。网络主机给了我一个包含恶意软件扫描结果的文本文件。看起来很多受影响的文件都是导航菜单。网站的php文件。文本文件中显示的扫描结果示例如下:“[主目录]/[网站文件夹名称]/wp includes/nav-menu.php:SL-php-INJECTOR-1-ejw.UNOFFICIAL