При использовании стандартного меню, которое вызывается функцией wp_nav_menu() WP генерирует код, который содержит в себе множество разных классов, например:
1 |
<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-6 current_page_item menu-item-14" id="menu-item-14"><a href="#">Главная</a></li> |
Иногда эти классы совершенно не нужны и от них нужно избавиться. Как это сделать?
В functions.php надо вызвать соответствующий фильтр:
1 2 3 4 5 |
function my_remove_all_class_item($classes, $item) { $classes = ''; //можно дописать свой класс 'my_specail_class' return $classes; } add_filter('nav_menu_css_class', 'my_remove_all_class_item', 10, 2 ); |
Можно решить задачу немного иначе:
1 2 3 4 5 6 7 8 9 10 |
function wph_css_class_to_menu($classes, $item){ if( $item->title == "Контакты" ){ $classes[] = "menu-contacts"; } if( $item->title == "О компании" ){ $classes[] = "menu-company"; } return $classes; } add_filter('nav_menu_css_class' , 'wph_css_class_to_menu' , 10 , 2); |
Если мешают стандартные id:
1 |
add_filter('nav_menu_item_id', '__return_false'); |
Добавить свой класс в тег <li>
Для этого в functions.php добавить следующий код:
1 2 3 4 5 6 7 |
function add_classes_on_li($classes, $item, $args) { if ( 'menu_footer' === $args->menu ) { //условие для того, чтобы изменение применлось только к определённому меню, а не ко всем $classes[] = 'list-group-item'; } return $classes; } add_filter('nav_menu_css_class','add_classes_on_li',1,3); |
Свежие комментарии