Wp_nav_menu — Позволяет изменить HTML код меню навигации перед его выводом на экран. Хук-фильтр WordPress
Опубликовано: 01.09.2018
Позволяет изменить HTML код меню навигации перед его выводом на экран.
Примерное содержимое:
<div class="menu-moyo-menyu-container"> <ul id="menu-moyo-menyu" class="menu"> <li id="menu-item-265" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-265"> <a href="http://wp-test.ru/post-99">Обратная связь</a> </li> <li id="menu-item-266" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-266"> <a href="http://wp-test.ru/post-98">Все статьи</a> </li> <li id="menu-item-267" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-267"> <a href="http://wp-test.ru/post-97">Карта сайта</a> </li> </ul> </div>Использование
add_filter( 'wp_nav_menu', 'filter_function_name_1676', 10, 2 ); function filter_function_name_1676( $nav_menu, $args ){ // Делаем что-либо... return $nav_menu; } $nav_menu(строка) HTML содержимое меню. $args(stdClass) Объект с параметрами, переданными функции wp_nav_menu() .Примеры
#1 Обернём все меню специальным контейнером
add_filter( 'wp_nav_menu', 'change_wp_nav_menu', 10, 2 ); function change_wp_nav_menu( $nav_menu, $args ) { return '<section class="menu-wrap">' . $nav_menu . '</section>'; }Где используется хук
... unset( $items ); if ( $show_container ) $nav_menu .= '</' . $args->container . '>'; /** * Filters the HTML content for navigation menus. * * @since 3.0.0 * * @see wp_nav_menu() * * @param string $nav_menu The HTML content for the navigation menu. * @param stdClass $args An object containing wp_nav_menu() arguments. */ $nav_menu = apply_filters( 'wp_nav_menu', $nav_menu, $args ); if ( $args->echo ) echo $nav_menu; else return $nav_menu; } /** * Add the class property classes for the current context, if applicable. * * @access private * @since 3.0.0 * * @global WP_Query $wp_query * @global WP_Rewrite $wp_rewrite ... campusboy 2826 — youtube.com/c/wpplusСоздатель YouTube канала wp-plus, на котором делюсь своими опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Как создать меню в WordPress через админку, виджет и кастомайзер. Начальный гайд. Урок #1