wp_nav_menu_args
Позволяет изменить аргументы, передаваемые в функцию wp_nav_menu(), после того, как они были слиты с дефолтными значениями.
Использование
add_filter( 'wp_nav_menu_args', 'wp_kama_nav_menu_args_filter' ); /** * Function for `wp_nav_menu_args` filter-hook. * * @param array $args Array of wp_nav_menu() arguments. * * @return array */ function wp_kama_nav_menu_args_filter( $args ){ // filter... return $args; }
- $args(массив)
- Массив аргументов.
Примеры
#1 Изменим параметры у всех меню одновременно
add_filter( 'wp_nav_menu_args', 'change_nav_menu_args' ); function change_nav_menu_args( $args ) { $args['fallback_cb'] = false; $args['menu_class'] = 'parent-menu'; $args['item_spacing'] = 'discard'; return $args; }
#2 Изменим параметры у определенного меню
Изменим некоторые параметры только у меню, которое выводится в области меню header-menu
.
Также в этом коде показано, как сделать проверку на авторизованного пользователя, и показывать другое название меню для не авторизованных пользователей.
add_filter( 'wp_nav_menu_args', 'change_nav_menu_args' ); function change_nav_menu_args( $args ) { if ( $args['theme_location'] === 'header-menu' ) { $args['fallback_cb'] = false; $args['menu_class'] = 'parent-menu'; $args['item_spacing'] = 'discard'; if ( ! is_user_logged_in() ) { $args['menu'] = 'Ваше название меню'; } } return $args; }
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
wp_nav_menu_args
wp-includes/nav-menu-template.php 97
$args = apply_filters( 'wp_nav_menu_args', $args );
Где используется хук в WordPress
wp-includes/class-wp-customize-nav-menus.php 1336
add_filter( 'wp_nav_menu_args', array( $this, 'filter_wp_nav_menu_args' ), 1000 );