nav_menu_item_id
Дозволяє змінити атрибут ID елемента <li> у пункті меню.
Щоб видалити або змінити атрибут class у меню, використовуйте фільтр nav_menu_css_class .
Код формування атрибута ID для елемента <li> у движку:
$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth ); $id = $id? ' id="' . esc_attr( $id ) . '"' : '';
Це означає, що за умовчанням ID атрибут має такий вигляд: menu-item-{ID элемента пункта меню}
. Але ми можемо повністю змінити цей ID через цей фільтр. Якщо фільтр нічого не повертає, атрибут ID взагалі не додається до елемента <li> .
Не забувайте, що ID атрибут тега має бути унікальним на сторінці!
Використання
add_filter( 'nav_menu_item_id', 'wp_kama_nav_menu_item_id_filter', 10, 4); /** * Function for `nav_menu_item_id` filter-hook. * * @param string $menu_id ID, що applied to menu item's `<li>` element. * @param WP_Post $menu_item The current menu item. * @param stdClass $args An object of wp_nav_menu() arguments. * @param int $depth Відомості про меню. Використовується для padding. * * @return string */ function wp_kama_nav_menu_item_id_filter( $menu_id, $menu_item, $args, $depth ){ // Filter... return $menu_id; }
-
$menu_id
(рядок) -
ID елемента
<li> пункту меню. -
$item
(WP_Post) Об’єкт поточного меню. Приклад:
-
$args
(stdClass) Об’єкт параметрів функції wp_nav_menu() . Приклад:
-
$depth
(число) Рівень пункту меню. Використовується для відступів. Верхні пункти меню мають $depth = 0, вкладені $depth = 1 тощо.
Доданий до версії 4.1.0.
Приклади
#1 Видалимо атрибут ID у пункту(ів) меню
Видалити ID у всіх пунктах меню на сайті:
add_filter( 'nav_menu_item_id', '__return_empty_string' );
Видалимо id атрибут у всіх пунктів меню, що виводяться в області меню primary
:
add_filter( 'nav_menu_item_id', 'change_menu_item_css_id', 10, 4); function change_menu_item_css_id( $menu_id, $item, $args, $depth ) { return $args->theme_location === 'primary' ? '': $menu_id; }
нотатки
- C версії 4.1.0 було додано параметр $depth .
список змін
З версії 3.0.1 | Введено. |
З версії 4.1.0 | The $depth parameter був added. |
Де викликається хук
Де використовується хук у WordPress
add_filter( 'nav_menu_item_id', '_nav_menu_item_id_use_once', 10, 2);