2011-12-11 54 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; 
    }