WordPress как на ладони
wordpress jino

wp_nav_menu_args хук-фильтр . WP 3.0.0

Позволяет изменить аргументы, передаваемые в функцию wp_nav_menu(), после того, как они были слиты с дефолтными значениями.

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

add_filter( 'wp_nav_menu_args', 'filter_function_name_3881' );
function filter_function_name_3881( $args ){
	// Делаем что-либо...

	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';
	}

	return $args;
}

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

wp_nav_menu() остальные хуки:

Код хука-фильтра wp_nav_menu_args

Фрагмент из: wp-includes/nav-menu-template.php VER 4.9.7
...

	if ( ! in_array( $args['item_spacing'], array( 'preserve', 'discard' ), true ) ) {
		// invalid value, fall back to default.
		$args['item_spacing'] = $defaults['item_spacing'];
	}

	/**
	 * Filters the arguments used to display a navigation menu.
	 *
	 * @since 3.0.0
	 *
	 * @see wp_nav_menu()
	 *
	 * @param array $args Array of wp_nav_menu() arguments.
	 */
	$args = apply_filters( 'wp_nav_menu_args', $args );
	$args = (object) $args;

	/**
	 * Filters whether to short-circuit the wp_nav_menu() output.
	 *
	 * Returning a non-null value to the filter will short-circuit
	 * wp_nav_menu(), echoing that value if $args->echo is true,
	 * returning that value otherwise.
	 *
	 * @since 3.9.0
	 *
	 * @see wp_nav_menu()
	 *
	 * @param string|null $output Nav menu output to short-circuit with. Default null.
	 * @param stdClass    $args   An object containing wp_nav_menu() arguments.
...
campusboy 2857youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться