WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_nav_menu_objects хук-фильтр . WP 3.1.0

Позволяет изменить отсортированный список объектов пунктов меню, прежде чем на их основе будет сгенерирован HTML-код меню.

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

add_filter( 'wp_nav_menu_objects', 'filter_function_name_8034', 10, 2 );
function filter_function_name_8034( $sorted_menu_items, $args ){
	// Делаем что-либо...

	return $sorted_menu_items;
}
$sorted_menu_items(массив)
Массив с объектами элементов меню, отсортированных по ключу menu_order. То есть порядок элементов повторяет порядок пунктов, выставленных в админ-панели при создании меню.
$args(stdClass)
Объект параметров переданых функции wp_nav_menu().

Примеры

#1 Удалим один из пунктов меню

Задача: для авторизованных пользователей нужно удалить со всех меню пункты, ведущие на страницу авторизации. Зная ID этой страницы, это можно сделать так:

## Удалим один из пунктов меню
add_filter( 'wp_nav_menu_objects', 'change_nav_menu_objects', 10, 2 );
function change_nav_menu_objects( $sorted_menu_items, $args ) {
	foreach ( $sorted_menu_items as $index => $item ) {
		if ( is_user_logged_in() && 'page' == $item->object && 214 == $item->object_id ) {
			unset( $sorted_menu_items[ $index ] );
		}
	}

	return $sorted_menu_items;
}

Где вызывается хук

wp_nav_menu()
wp_nav_menu_objects
wp-includes/nav-menu-template.php 211
$sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );

Где используется хук (в ядре WP)

Использование не найдено.
campusboy 3314youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться