如何将自定义NAV_MENU_CS_CLASS仅添加到特定菜单?

时间:2016-02-21 作者:Bunjip

我想向菜单项添加自定义CSS类。到目前为止,我通过使用过滤器挂钩使其正常工作nav_menu_css_class. 但是,我只想将此类添加到特定菜单的项目中。那么,条件必须是什么样子才能仅影响特定菜单(例如,主题位置“页脚菜单”中的“自定义菜单”)?

function add_footer_nav_item_class( $classes, $item ) {
  // I am looking for a condition here
  if ($item belongs to \'custom-menu\'){
    $classes[] = "footer--menu-item";
    return $classes;
  }
}
add_filter( \'nav_menu_css_class\' , \'add_footer_nav_item_class\' , 10, 2 );

1 个回复
SO网友:TheDeadMedic

你只需要第三个论点$args, 其中一个属性是theme_location:

function wpse_218377_nav_menu_css_class( $classes, $item, $args ) {
    if ( ! empty( $args->theme_location ) && $args->theme_location === \'custom-menu\' ) {
        $classes[] = \'footer--menu-item\';
    }

    // ALWAYS return, not from inside the if
    return $classes;
}

add_filter( \'nav_menu_css_class\' , \'wpse_218377_nav_menu_css_class\' , 10, 3 );

相关推荐

Custom items for Menus

编辑菜单时,我发现可以添加5种类型的项目:自定义链接页面帖子类别标签是否可以添加自定义的?比如说,我想添加一个图像,或者一个搜索栏,或者其他什么。我是否可以添加新的菜单项类型,以呈现我为它们选择的代码?