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

如何在wordpress菜单类列表中添加其他类,wordpress,wordpress-theming,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> 将替换为: class="nav-item menu-item menu-it

我希望为以下代码提供一个简单的解决方案:

<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>
将替换为:

class="nav-item menu-item menu-item-type-custom menu-item-object-custom menu-item-11"
为了实现它,我需要一种有效的方法将其放入theme 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');
函数添加\u菜单类($ulclass){
返回preg_replace('/如果只是一个(或几个)菜单项,可以在外观菜单管理页面中执行此操作

在屏幕选项的右上角,确保选中了
CSS类
,然后您将在菜单项上看到:

如果你需要通过编程来实现这一点,你可以使用过滤器。你应该避免使用正则表达式来实现这一点

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;
}

您好Xhynk,谢谢您提供的解决方案,非常感谢。但是我在想,如果可以直接通过php代码/js代码来实现该类,因为我正在尝试自定义一个主题,我不希望用户自己从css部分的菜单选项中设置该类,它应该是一个固定的类“nav项”应该会自动添加到
  • 类中。感谢您的支持。您看到我编写的函数了吗?将它粘贴到functions.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');
    
    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;
    }