wp_nav_menu_container_allowedtags
Позволяет дополнить список HTML тегов, которые можно указать в параметре 'container' при выводе меню функцией wp_nav_menu(). Фильтрует список тегов - контейнеров меню.
Контейнер меню указывается для функции wp_nav_menu() в параметре container:
wp_nav_menu( array( 'container' => 'div', ) );
По умолчанию можно указать только теги div и nav. Этот фильтр позволяет расширить этот список.
Использование
add_filter( 'wp_nav_menu_container_allowedtags', 'wp_kama_nav_menu_container_allowedtags_filter' ); /** * Function for `wp_nav_menu_container_allowedtags` filter-hook. * * @param string[] $tags The acceptable HTML tags for use as menu containers. * * @return string[] */ function wp_kama_nav_menu_container_allowedtags_filter( $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>
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
wp_nav_menu_container_allowedtags
wp-includes/nav-menu-template.php 184
$allowed_tags = apply_filters( 'wp_nav_menu_container_allowedtags', array( 'div', 'nav' ) );