无法为WordPress nav_menu的li元素添加类

时间:2017-08-03 17:41:08

标签: wordpress wordpress-theming

我找到了一些为li元素添加类的解决方案,但不幸的是它没有用。我究竟做错了什么? 这是我的代码:

编辑:我还添加了第二个菜单,我在页面上使用

function.php

function main_menu() {
    add_theme_support('menus');
    register_nav_menus(array(
        'primary' => __('Primary Main Menu'),
    ));
    register_nav_menus(array(
        'secondary' => __('Primary Portfolio Navigation'),
    ));
}


//Remove ul wrapper from menu
function remove_ul ( $menu ){
    return preg_replace( array( '#^<ul[^>]*>#', '#</ul>$#' ), '', $menu );
}
add_filter( 'wp_nav_menu', 'remove_ul' );


function special_nav_class ($classes, $item) {
    if (in_array('current-menu-item', $classes) ){
        $classes[] = 'active ';
    }
    return $classes;
}

function menu_item_class( $classes, $item, $args) {
    unset($classes);
  $classes[] = "col-xs-6 col-sm-6 col-md-2 filter";
  return $classes;
}


//Menu
add_action('after_setup_theme', 'main_menu');
add_filter('nav_menu_css_class', 'menu_item_class', 1, 3);

的index.php

<ul>
    $args = array(
        'container' => false,
        'menu_id' => false,
        'items-wrap' => '',
        'theme_location' => 'secondary'
    );
        wp_nav_menu($args); ?>
</ul>

1 个答案:

答案 0 :(得分:1)

从nav_menu_css_class返回的内容应该是数组。你在技术上返回一个带有单个字符串的数组,但是将每个类作为数组中的一个元素来执行它会更正确:

function menu_item_class( $classes, $item, $args) {
    unset($classes);
  $classes = ["col-xs-6","col-sm-6","col-md-2","filter"];
  return $classes;
}

我想知道这是否能解决你的问题。

相关问题