Сышышь ты, выходи сюда,
поговорим !

Wp_nav_menu_container_allowedtags — Позволяет дополнить список HTML тегов, которые можно указать в параметре 'container' при выводе меню функцией wp_nav_menu(). Фильтрует список тегов — контейнеров меню. Хук-фильтр WordPress

Опубликовано: 01.09.2018

Позволяет дополнить список HTML тегов, которые можно указать в параметре 'container' при выводе меню функцией wp_nav_menu(). Фильтрует список тегов - контейнеров меню.

Контейнер меню указывается для функции wp_nav_menu() в параметре container:

wp_nav_menu( array( 'container' => 'div', ) );

По умолчанию можно указать только теги div и nav. Этот фильтр позволяет расширить этот список.

Использование

add_filter( 'wp_nav_menu_container_allowedtags', 'filter_function_name_9513' ); function filter_function_name_9513( $tags ){ // filter... return $tags; } $tags(массив) Допустимые HTML теги для использования в качестве контейнеров меню.

По умолчанию: используется массив, содержащий 'div' и 'nav'

Примеры

#1 Добавим в выбор допустимых тегов тег section

// Добавляем тег section в набор допустимых тегов для выбора add_filter( 'wp_nav_menu_container_allowedtags', function ( $allowed_tags ) { $allowed_tags[] = 'section'; return $allowed_tags; } ); // Выводим меню wp_nav_menu( [ 'theme_location' => 'mainmenu', 'container' => 'section', ] );

Получим:

<section class="menu-mainmenu-container"> <ul id="menu-mainmenu" class="menu"> <li id="menu-item-268" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-268"> <a href="http://wp-test.ru/2018/03/25/post-105/">Запись 1</a> </li> <li id="menu-item-269" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-269"> <a href="http://wp-test.ru/2018/03/25/post-104/">Запись 2</a> </li> <li id="menu-item-270" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-270"> <a href="http://wp-test.ru/2018/03/25/post-103/">Запись 3</a> </li> </ul> </section>

Где используется хук

... if ( ! $menu || is_wp_error( $menu ) ) return false; $nav_menu = $items = ''; $show_container = false; if ( $args->container ) { /** * Filters the list of HTML tags that are valid for use as menu containers. * * @since 3.0.0 * * @param array $tags The acceptable HTML tags for use as menu containers. * Default is array containing 'div' and 'nav'. */ $allowed_tags = apply_filters( 'wp_nav_menu_container_allowedtags', array( 'div', 'nav' ) ); if ( is_string( $args->container ) && in_array( $args->container, $allowed_tags ) ) { $show_container = true; $class = $args->container_class ? ' class="' . esc_attr( $args->container_class ) . '"' : ' class="menu-'. $menu->slug .'-container"'; $id = $args->container_id ? ' id="' . esc_attr( $args->container_id ) . '"' : ''; $nav_menu .= '<'. $args->container . $id . $class . '>'; } } // Set up the $menu_item variables _wp_menu_item_classes_by_context( $menu_items ); $sorted_menu_items = $menu_items_with_children = array(); foreach ( (array) $menu_items as $menu_item ) { $sorted_menu_items[ $menu_item->menu_order ] = $menu_item; if ( $menu_item->menu_item_parent ) ... campusboy 2826 — youtube.com/c/wpplus

Создатель YouTube канала wp-plus, на котором делюсь своими опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.

rss