如何在Wordpress菜单类别列表中添加其他类别

时间:2018-06-21 17:56:27

标签: wordpress wordpress-theming

我想要以下代码的简单解决方案:

<li id="menu-item-11" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-11"><a class="nav-item-child nav-item-hover"href="#">Contact</a></li>

我想在“

  • ”部分的类中添加其他类“ nav-item”,使所有内容保持不变,因此代码将显示如下:

    <li id="menu-item-11" class="nav-item menu-item menu-item-type-custom menu-item-object-custom menu-item-11"><a class="nav-item-child nav-item-hover"href="#">Contact</a></li>
    

    含义如下课程:

    class="nmenu-item menu-item-type-custom menu-item-object-custom menu-item-11"
    

    将替换为:

    class="nav-item menu-item menu-item-type-custom menu-item-object-custom menu-item-11"
    

    我想要一种有效的方法将其放入主题function.php文件中以实现它。我尝试了以下代码:

    function add_menuclassli($ulclass) {
       return preg_replace('/<ul /', '<li class="nav-item menu-item menu-item-type-custom menu-item-object-custom"', $ulclass);
    }
    add_filter('wp_nav_menu','add_menuclassli');
    

    但是我停留在最后一部分“ menu-item-11”-因为项目号是唯一的,并且会为每个列表单独生成。请帮忙!!!

  • 1 个答案:

    答案 0 :(得分:1)

    如果仅用于一个(或几个)菜单项,则可以在外观> 菜单管理页面中进行。

    在屏幕选项的右上角,确保选中CSS Classes,然后您会在菜单项上看到它:

    Admin Menu Showing CSS Classes field

    如果您需要以编程方式执行此操作,则可以使用nav_menu_css_class过滤器。您应该避免对此类事情使用正则表达式!

    add_filter( 'nav_menu_css_class', 'add_nav_item_class', 10, 4 );
    function add_nav_item_class( $classes, $item, $args, $depth ){
        $classes[] = 'nav-item';
    
        return $classes;
    }