使用Functions.php覆盖菜单CSS Wordpress

时间:2014-12-11 01:49:08

标签: php wordpress

我在functions.php中使用以下覆盖

function wp_nav_menu_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}

add_filter('nav_menu_css_class', 'wp_nav_menu_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'wp_nav_menu_attributes_filter', 100, 1);
add_filter('page_css_class', 'wp_nav_menu_attributes_filter', 100, 1);

这将删除wordpress添加到菜单项的类标记。现在我需要做的是将我自己的班级名称放入li标签,相反,任何人都可以快速填写我如何做到这一点,我已经搜索谷歌,也许我正在寻找它错了或什么不是我只是无法用functions.php文件来理解钩子系统....

使用上面的命令将我的html输出设为......

    <ul id="menu-homemenu" class="list-group special">
    <li><a href="#">Biography</a></li>
    <li><a href="#">Selected Works</a></li>
    <li><a href="#">Contact Us</a></li>
    </ul>

1 个答案:

答案 0 :(得分:0)

当然,在我发表评论之后,我想出来了......当这需要整晚才能得到它时感到厌恶......这个问题指出了我正确的方向 - How to add custom HTML to wp_nav_menu?

我添加了这个课程..

class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
        $output .= "<li class='list-group-item'><a href=".esc_attr($item->url).">".esc_attr($item->title)."</a>";
    }

    function end_el( &$output, $item, $depth = 0, $args = array() ) {
        $output .= "</li>\n";
    }
}

然后将其添加到我的数组中,我在模板中调用了导航...

<?php wp_nav_menu(array('menu' => 'HomeMenu','menu_class' => 'list-group special','menu_id' => '','walker' => new Custom_Walker_Nav_Menu)); ?>