主题开发:如何将CSS类添加到菜单项?

时间:2016-10-24 作者:Bunjip

在构建自定义主题时,我一直在研究如何将CSS类添加到特定的主题菜单(即与主题菜单位置关联的自定义菜单)。

到目前为止,在我的模板中

  <?php if (has_nav_menu(\'main-menu\')) : ?>
    <nav class="topmenu" role="navigation">
    <?php
      wp_nav_menu(array(
        \'menu-class\'  => \'topmenu--list\',
        \'theme_location\' => \'main-menu\',
        \'fallback_cb\' => false,
      ));
    ?>
    </nav>
   <?php endif; ?>
所以,我错过了一个\'menu-item-class\' wp\\U nav\\U菜单中的选项$args 大堆如何将CSS类传递给每个菜单项?

我要明确的是,我不希望编辑器在管理后端手动为每个菜单项设置CSS类。我想通过编程将CSS类添加到每个菜单项中。

2 个回复
SO网友:Florin Sarba

您可以使用nav_menu_css_class 应用于指定导航菜单中每个菜单项的过滤器。

add_filter(\'nav_menu_css_class\' , \'special_nav_class\' , 10 , 2);

function special_nav_class($classes, $item){
    $classes[] = \'your-custom-class\';
    return $classes;
}
更多信息:http://www.wpbeginner.com/wp-tutorials/add-a-custom-class-in-wordpress-menu-item-using-conditional-statements/

SO网友:roscabgdn

从WordPress插件API中,您可以使用nav\\u菜单\\u css\\u类过滤器示例:

function my_special_nav_class( $classes, $item ) {
    if ( is_single() && $item->title == \'Blog\' ) {
        $classes[] = \'special-class\';
    }
    return $classes;
 }
 add_filter( \'nav_menu_css_class\', \'my_special_nav_class\', 10, 2 );

https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class

相关推荐

用标准的干净文件替换NAV-menus.php文件?

我是一个自学成才的wordpress网站设计师,请原谅我的无知。我为一个客户开发的几个网站最近被一个印尼黑客组织破坏了(很有趣!)。客户端没有更新wordpress安装和其他一些危及安全的事情。遗憾的是,没有网站的清理备份。网络主机给了我一个包含恶意软件扫描结果的文本文件。看起来很多受影响的文件都是导航菜单。网站的php文件。文本文件中显示的扫描结果示例如下:“[主目录]/[网站文件夹名称]/wp includes/nav-menu.php:SL-php-INJECTOR-1-ejw.UNOFFICIAL