2011-12-11 55 views
0

我试图将javascript:void(0)插入到Wordpress菜单中,但它修改了链接到http://javascript:void(0)在主菜单中添加javascript

有没有办法让菜单保持原来的JavaScript?

+1

为什么你需要做到这一点?更好的方法是将一个事件处理程序放在一个'.js'文件中,并给''''''''href'''。 – Bojangles

+0

嗯,我有一个使用手风琴菜单的模板,但我不想要父节点的任何链接..它似乎#工程..奇怪,因为我强硬我试过。感谢你的回答。 –

回答

0

他们呈现前菜单属性都逃了出来,这就是为什么JavaScript在剥下的原因,你的菜单。

@Ref https://github.com/WordPress/WordPress/blob/master/wp-includes/nav-menu-template.php#L146

您可以轻松地通过重写Walker_Nav_Menu类在functions.php

这不会解决你的菜单中WP-管理员逃逸的JavaScript克服这一点。你仍然可以使用#为您的网址,然后通过使用javascript:void(0)替换为:

if (!is_admin()) add_filter('nav_menu_link_attributes', 'javascript_void_attr'), 10, 3); 

    function javascript_void_attr($atts, $item, $args){ 
     if (isset($atts['href']) && $atts['href'] == '#'){ 
      $atts['href'] = 'javascript:void(0)'; 
     } 
     return $atts; 
    }