我想要以下代码的简单解决方案:
<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>
我想在“
<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”-因为项目号是唯一的,并且会为每个列表单独生成。请帮忙!!!
答案 0 :(得分:1)
如果仅用于一个(或几个)菜单项,则可以在外观> 菜单管理页面中进行。
在屏幕选项的右上角,确保选中CSS Classes
,然后您会在菜单项上看到它:
如果您需要以编程方式执行此操作,则可以使用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;
}