nav_menu_submenu_css_class
Дозволяє змінити CSS класи, додані до вкладених ul елементів (списків меню). За промовчанням додається клас sub-menu
.
Приклад меню з двома вкладеними елементами ul.
Структура:
- Овочі
- Моя стаття (вкладений елемент)
- Ще стаття (вкладений елемент)
- Моя стаття (вкладений елемент)
Верстка:
<div class="menu-vtoroe-menyu-container"> <ul id="menu-vtoroe-menyu" class="menu"> <li id="menu-item-317" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-317"> <a href="http://wp-test.ru/category/ovoshhi">Овочі</a> <ul class="sub-menu"> <li id="menu-item-322" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-has-children menu-item-322"> <a href="http://wp-test.ru/moya-statya">Моя стаття</a> <ul class="sub-menu"> <li id="menu-item-321" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-321"> <a href="http://wp-test.ru/eshhyo-statya">Ще стаття</a> </li> </ul> </li> </ul> </li> </ul> </div>
Використання
add_filter( 'nav_menu_submenu_css_class', 'wp_kama_nav_menu_submenu_css_class_filter', 10, 3); /** * Function for `nav_menu_submenu_css_class` filter-hook. * * @param string[] $classes Array of the CSS classes that are applied to the menu `<ul>` element. * @param stdClass $args An object of `wp_nav_menu()` arguments. * @param int $depth Відомості про меню. Використовується для padding. * * @return string[] */ function wp_kama_nav_menu_submenu_css_class_filter( $classes, $args, $depth ){ // Filter... return $classes; }
-
$classes
(масив) Класи CSS, які застосовуються до вкладених ul елементів. Приклад:
Array( [1] => sub-menu )
-
$args
(stdClass) Об’єкт з аргументами функції wp_nav_menu() . Приклад:
-
$depth
(число) - Рівень пункту меню. Доданий до версії 4.1.0. Використовується для відступів. Верхні пункти меню мають $depth = 0, вкладені у яких $depth = 1 тощо.
Приклади
#1 Видалити всі css класи
add_filter( 'nav_menu_submenu_css_class', 'change_wp_nav_menu', 10, 3); function change_wp_nav_menu( $classes, $args, $depth ) { return []; }
#2 Додати css класи
add_filter( 'nav_menu_submenu_css_class', 'change_wp_nav_menu', 10, 3); // 1 варіант - додати у всіх меню function change_wp_nav_menu( $classes, $args, $depth ) { $classes[] = 'my-css-1'; $classes[] = 'my-css-2'; return $classes; } // 2 варіант - тільки у меню, що прикріплено до області меню header-menu function change_wp_nav_menu( $classes, $args, $depth ) { if ( $args->theme_location == 'header-menu' ) { $classes[] = 'my-css-1'; $classes[] = 'my-css-2'; } return $classes; }
#3 Змінити css клас(и)
add_filter( 'nav_menu_submenu_css_class', 'change_wp_nav_menu', 10, 3); function change_wp_nav_menu( $classes, $args, $depth ) { foreach ( $classes as $key => $class ) { if ( $class == 'sub-menu' ) { $classes[ $key ] = 'my-sub-menu'; } } return $classes; }
список змін
З версії 4.8.0 | Введено. |
Де викликається хук
nav_menu_submenu_css_class
Де використовується хук у WordPress
Використання не знайдено.