2013-10-31 85 views
2

在我的主題中使用wp_nav_menu時,我想爲包含子列表的項目(至dropdown以適合Foundation框架)更改Worpdress的默認sub-menu類。在wordpress中更改子菜單類

我已閱讀this post的主題,但我似乎無法讓它正常工作。

在我functions.php文件我已經插入:

class My_Sub_Menu extends Walker_Nav_Menu { 
    function start_lvl(&$output, $depth) { 
    $indent = str_repeat("\t", $depth); 
    $output .= "\n$indent<ul class=\"dropdown\">\n"; 
    } 
} 

在我header.php文件我有:

<?php 
    $defaults = array(
     'theme_location' => 'header-nav', 
     'menu_class'  => 'right', 
     'walker'   => new My_Sub_Menu(), 
     'container'  => false 
    ); 
    wp_nav_menu($defaults); 
?> 

但沒有發生。我誤解了在哪裏插入代碼?

回答

9

是否因爲您沒有爲您的class My_Sub_Menu extends Walker_Nav_Menu指定end_lvl

class My_Sub_Menu extends Walker_Nav_Menu { 
    function start_lvl(&$output, $depth) { 
    $indent = str_repeat("\t", $depth); 
    $output .= "\n$indent<ul class=\"dropdown\">\n"; 
    } 
    function end_lvl(&$output, $depth) { 
    $indent = str_repeat("\t", $depth); 
    $output .= "$indent</ul>\n"; 
    } 
} 
+0

呵呵,在其他帖子中沒有看到這個參考!猜猜我需要更熟悉這些東西。非常感謝!!! – Sheixt

+0

非常歡迎您,我沒有親自看過Walker_Nav_Menu,但這是一個有教養的猜測。 – SMacFadyen