pre_wp_nav_menu хук-фільтрWP 3.9.0

Дозволяє змінити виведення функції wp_nav_menu() на ранньому етапі до роботи основного коду функції.

Дозволяє до початку формування меню обірвати виконання функції wp_nav_menu() , або дати їй згенерований html код, який відразу ж буде виведений на екран або повернутий, залежно від параметра $args->echo.

Використання

add_filter( 'pre_wp_nav_menu', 'wp_kama_pre_wp_nav_menu_filter', 10, 2);

/**
 * Function for `pre_wp_nav_menu` filter-hook.
 *
 * @param string|null $output Nav menu output to short-circuit with.
 * @param stdClass $args An object containing wp_nav_menu() arguments.
 *
 * @return string|null
 */
function wp_kama_pre_wp_nav_menu_filter( $output, $args ){

	// Filter...
	return $output;
}
$output
(рядок/null)

Значення, яке визначає, як поведеться функція wp_nav_menu() далі.

  • Якщо null– продовжить виконання.
  • Якщо не null – перерве решту виконання коду і поверне передане значення. Якщо було вказано параметр echo = true , результат буде вивести на екран.

Типово: null

$args
(stdClass)
Об’єкт з параметрами, переданими
wp_nav_menu() і злиті з дефолтними.

Приклади

0

#1 Вивести інше меню для авторизованих користувачів

Цей приклад передбачає наявність двох областей меню: header-menuі header-menu-user-logged. Для неавторизованих користувачів буде виводитись меню, прикріплене до області header-menu , а для авторизованих – прикріплене до області menu-user-logged .

// У header.php
wp_nav_menu([
	'theme_location' => 'header-menu',
]);

// У functions.php
add_action( 'after_setup_theme', 'dev_menu_setup');

function dev_menu_setup() {
	register_nav_menus([
		'header-menu' => 'Верхнє меню',
		'menu-user-logged' => 'Верхнє меню для авторизованих користувачів',
	]);
}

add_filter( 'pre_wp_nav_menu', 'change_pre_wp_nav_menu', 10, 2);

function change_pre_wp_nav_menu( $output, $args ) {
	if ( $args->theme_location === 'header-menu' && is_user_logged_in() ) {
		wp_nav_menu([
			'theme_location' => 'menu-user-logged',
		]);
	}

	return $output;
}

список змін

З версії 3.9.0Введено.

Де викликається хук

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *