2012-03-08 25 views

回答

1

晚了一點,但這裏是如何做到這一點:

<?php 
echo strip_tags(wp_nav_menu(array(
    'echo' => false, 
    'items_wrap' => '<nav role="navigation">%3$s</nav>', 
)), '<a><nav>'); 
?> 
+0

這仍然是一個黑客。 – Banago 2016-05-06 10:08:39

3

一直在尋找一段時間,但後來看到可以設置「容器」爲假。

<nav role="navigation"> 
<?php 
    $defaults = array(
    'container'  => false, 
    'items_wrap'  => '<ul>%3$s</ul>' 
); 
    wp_nav_menu($defaults); 
?> 
</nav> 

返回一個簡單的導航,沒有中間的div。

+0

我喜歡這個解決方案。它很乾淨。 – Banago 2016-05-06 10:08:29

0

這裏是我的方式做這些:

add_filter('wp_nav_menu', function($nav_menu, $args) { 
    if('primary' != $args->theme_location || 'nav' != $args->container) 
     return $nav_menu; 

    $class  = $args->container_class ? ' class="' . esc_attr($args->container_class) . '"' : ' class="menu-'. $menu->slug .'-container"'; 
    $id   = $args->container_id ? ' id="' . esc_attr($args->container_id) . '"' : ''; 
    $search  = '<'. $args->container . $id . $class . '>'; 
    $replace = '<'. $args->container . $id . $class . ' role="navigation">'; 
    return str_replace($search, $replace, $nav_menu); 
}, 10, 2);