如何将类添加到单个菜单项?

时间:2013-08-06 作者:Jon Mitten

我正在尝试修改一个非WP主题以与我最新的WP项目兼容,其中一个问题是下拉菜单项。由于这是一个完全自定义的主题,我想复制这个模板1:1的行为,我要求“Categories”nav菜单项中包含类“dropdown”。我可以使用JavaScript捕获ID并在其上添加类名,但如果ID稍后发生更改怎么办?

使用PHP,如何在单个菜单项上插入类?

谢谢

3 个回复
SO网友:Jon Mitten

在“外观>菜单”面板中,可以通过单击页面顶部的“屏幕选项”选项卡来显示自定义类字段。从那里,每个菜单项都将有一个标记为“css类(可选)”的自定义css字段,管理员可以在其中输入任何纯文本类名。

SO网友:Till

您可以使用wp_nav_menu_objects 过滤器:

add_filter( \'wp_nav_menu_objects\', \'add_nav_menu_item_class\' );

function add_nav_menu_item_class( $items ) {
    foreach ( $items as $item ) {
        $item->classes[] = \'css-class-name\';
    }
    return $items;
}

SO网友:birgire

您可以使用nav_menu_css_class 筛选以针对类别项目:

add_filter(\'nav_menu_css_class\', \'custom_nav_menu_css_class\', 10, 2 );
function custom_nav_menu_css_class( $classes, $item ) {
    if( \'category\' === $item->object ){
        array_push( $classes, \'dropdown\' ); 
    }
    return $classes;    
}
并附加下拉列表类。

结束

相关推荐

在jQuery中,使用php变量来执行排队jQuery文件

我正在一个特定的Wordpress管理页面上加载一些jquery,jquery可以加载并正常工作,但如果存在php变量,我只需要这个jquery触发器。在php中,我只需编写一个函数并将其挂接到管理页面:我正在将jquery文件排队,即foo。包含以下jquery的js:jQuery(document).ready(function($){ $(\'#someID.some-class > a\').append(\'<div class=\"caption\"><